java stopself_然后,即使我停止了服务,Context.startForegroundService()也没有调用Service.startForeground()...

所以我的应用程序有一些触发服务和通知的远程操作 . 在调用 startForegroundService 和服务尝试启动通知的时间之间,事情可能会发生变化,因此服务会再次检查事物的状态,然后决定要做什么 .

因此,如果我的服务决定它不需要运行,它将调用:

stopForeground(true);

stopSelf();

但由于某些原因,这似乎不起作用,因为我在进行这些调用后几乎立即得到此异常 .

11-16 13:34:23.488 15099-15099/mypackage E/AndroidRuntime: FATAL EXCEPTION: main

Process: mypackage, PID: 15099

android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1768)

at android.os.Handler.dispatchMessage(Handler.java:106)

at android.os.Looper.loop(Looper.java:164)

at android.app.ActivityThread.main(ActivityThread.java:6494)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

那我怎么解决这个问题呢?

谢谢 .

编辑:

我创建了一个示例项目,当Activity启动时它所做的就是调用 startForegroundService 然后它在服务上执行此操作:

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

Log.i(TAG,"start");

stopForeground(true);

stopSelf();

return super.onStartCommand(intent, flags, startId);

}

它崩溃了,无论我是否使用 stopForeground(true) .

编辑:这似乎解决了它,但似乎真的很丑,必须创建一个假通知只是为了取消它 .

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

Log.i(TAG,"start");

String CHANNEL_ID = "my_channel_01";

NotificationCompat.Builder mBuilder =

new NotificationCompat.Builder(this, CHANNEL_ID)

.setContentTitle("My notification")

.setContentText("Hello World!");

startForeground(-1,mBuilder.build());

stopForeground(true);

stopSelf();

return super.onStartCommand(intent, flags, startId);

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334472.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unix/Linux/BSD 它们之间的关系以及各自派系的介绍

文章目录一、Unix 是什么二、Unix 派系(一)BSD 分支1.BSD 是什么2.由 BSD 衍生的闭源 Unix 版本3.由 BSD 衍生的开源 Unix 版本(二)System V 分支1.System V 是什么2.System V 与 BSD 的版权纠纷,以及 UnixWare 的由来…

arraylist获取前多少位_Java 面试题 :百度前 200 页都在这里

作者:唐尤华,基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get 和 post请求的区…

航空订票系统界面java_Java命令行界面(第21部分):航空公司2

航空订票系统界面java本系列文章的第21篇关于Java中解析命令行参数的文章的重点是Airline 2库。 Airline 2的GitHub项目页面描述了该库,“ Airline是一个Java库,提供了基于注释的框架来解析命令行界面。” 该页面进入状态:航空公司“同时支持…

js map遍历 修改对象里面的值_js中那些方法不改变原来的数组对象

一、map方法 [javascript] view plain copy function fuzzyPlural(single) {var result = single.replace(/o/g, e); //replace也不会修改原来数组的值,这里打印[foot,goose,moose,kangaroo] //alert(single); //下面为新的数组添加了一个元素,但是我们看到在map的时候没有对…

QPW 公告表(tf_notice)

公告表 CREATE TABLE tf_notice (notice_id int(11) NOT NULL AUTO_INCREMENT COMMENT 公告ID,title varchar(300) DEFAULT NULL COMMENT 标题,content varchar(2000) DEFAULT NULL COMMENT 内容,company_id bigint(20) DEFAULT NULL COMMENT 企业ID, # 删掉appraise_id bigin…

python爬虫数据_python爬取数据分析

一.python爬虫使用的模块 1.import requests 2.from bs4 import BeautifulSoup 3.pandas 数据分析高级接口模块 二. 爬取数据在第一个请求中时, 使用BeautifulSoupimport requests # 引用requests库 from bs4 import BeautifulSoup # 引用BeautifulSoup库 res_movies requests…

java 迁移数据_Java 9迁移指南:七个最常见的挑战

java 迁移数据我敢肯定,您已经听说过更新到Java 9并不是一件容易的事,甚至可能是不兼容的更新,而且对于大型代码库而言,迁移毫无意义。 这样做之后,我迁移了一个相当大的旧代码库,我可以告诉你,…

markdown java 代码高亮_MarkdownPad2使用代码高亮插件

MarkdownPad 2有插入代码块的功能,但样式却不尽人意,但又不想换个编辑器,找了挺多相关资料,最后在MarkdownPad 2集成prettify高亮插件。如下相关资料:你可以下载后引用,也可以直接引用bootcdn。具体步骤&am…

QPW 点评阅读日志表(tf_appraise_read_log)

点评阅读日志表 CREATE TABLE tf_appraise_read_log (read_log_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 日志ID,appraise_id bigint(20) DEFAULT NULL COMMENT 点评ID,user_id bigint(20) DEFAULT NULL COMMENT 用户ID,duration int(11) DEFAULT NULL COMMENT 阅读时长…

需求调研 现有系统梳理_对速度的需求,访问现有数据的速度提高了1000倍

需求调研 现有系统梳理了解如何通过使用标准Java 8流和Speedment的In-JVM-Memory加速器将分析数据库应用程序加速1000倍。 Web和移动应用程序有时会很慢,因为后备数据库很慢和/或与数据库的连接施加了延迟。 现代的UI和交互式应用程序需要快速后端,并且…

order by 影响效率么_提升开发效率N倍的20+命令行神器

图 by:石头青海湖关于作者:程序猿石头(ID: tangleithu),现任阿里巴巴技术专家,清华学渣,前大疆后端 Leader。以每篇文章都让人有收获为目的,欢迎关注,交流和指导!背景本文主要来源于…

超级酒吧女生Java下载_超真实分享:一个人去酒吧的经验+注意事项

原标题:超真实分享:一个人去酒吧的经验+注意事项今天想跟大家分享我自己一个很奇妙也很特别的经验,就是关于我自己一个人去酒吧喝酒的故事~对这个故事有好奇心的女孩欢迎跟我一起聊聊~我的个性很独立而且蛮…

QPW 点评点赞日志表(tf_appraise_praise)

点评点赞日志表 CREATE TABLE tf_appraise_praise (praise_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 点赞ID,user_id bigint(20) DEFAULT NULL COMMENT 用户ID,appraise_id bigint(20) DEFAULT NULL COMMENT 点评ID,status smallint(6) DEFAULT NULL COMMENT 状态, # 这…

java parse_Java命令行界面(第9部分):parse-cmd

java parseparse-cmd库由单个类ParseCmd.java组成,该类是“用于在Java应用程序中定义和解析命令行参数的Java类。” 该库托管在Google Code存档上 ,因此可以随时关闭 。 该JAR似乎也可以在GitHub上使用 。 这篇文章介绍了如何使用parse-cmd 0.0.93处理Ja…

mysql 聚簇索引和非聚簇索引_MySQL学习之——索引

转自:CSDNMySQL是目前绝大多数互联网公司使用的关系型数据库,它性能出色、资源丰富、成本低廉,是快速搭建互联网应用的首选关系型数据库。但是,俗话说,“好马配好鞍”,仅仅会使用MySQL是不够的,…

QPW 邀请日志表(tf_invite_log)

邀请日志表 被邀请者注册成功后,往这张表插入一条记录,记录在何时谁邀请了谁。 CREATE TABLE tf_invite_log (invite_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 邀请ID,user_id bigint(20) DEFAULT NULL COMMENT 用户ID, # 邀请用户IDinvited_us…

java登录界面命令_Java命令行界面(第10部分):picocli

java登录界面命令picocli主页面将picocli描述为“强大的微小命令行界面”,“ picocli”是一个单文件Java框架,用于解析命令行参数并生成精美,易于定制的用法帮助消息。 有颜色。” 这篇文章简要概述了如何使用Picocli 0.9.7处理Java代码中的命…

navicat运行sql文件慢_SQL进阶之路——入门

一、初步了解SQL数据库:用来存放数据关系数据库:1.含有多张表 2.各表之间有关系关系数据库中表的样式:a.每个表1个表名 b.每个表中包含记录列名的列和记录数据的行 c.利用主键用来标识数据的唯一性关系数据库中每个表之间如何建立联系&#x…

查询英文缩写形式(缩写词)的网站工具梳理

国外 https://www.abbreviations.com/ 点评:比较靠谱,大部分单词查询到的缩写形式是正确的 https://www.acronymfinder.com/ 点评:不是很靠谱,很多单词查询到的缩写形式是错误的 国内 http://shortof.com/ 点评&#xff1a…

java登录界面命令_Java命令行界面(第19部分):jClap

java登录界面命令本系列中第19个帖子的重点是从Java代码解析命令行参数是jClap ( Java命令行参数解析器 ),不应与JCLAP库混淆,该库是我本系列前 一篇文章的重点。 上 一篇 文章介绍了Giles Winstanley( snaq.net &…