android app中的服务为啥接收不到广播

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android app中的服务为啥接收不到广播相关的知识,希望对你有一定的参考价值。

在Activity 的oncreat中开启服务startservice。然后在Activity的onstart中给service发送一个广播,但是service总是在activity启动完成后才开始创建,所以总是收不到广播,请问如何解决

你用静态的方式注册广播吧
什么情况下都可以收到广播了
如果你在service里动态注册广播,是不是你的service已经运行完了与你的广播解除关系才收不到广播呢?
那你在onStart里startservice,再发广播不就行了.追问

是的,service运行完了也接受不到广播。为啥要在onstart里satartservice,oncreat不是比onstart先执行吗

追答

oncreat只执行一次,onstart每次回到界面都会执行

你最好用Log,将你的service的生命周期打印出来,看看广播是不是被解除了
还不行你留下Q吧,我帮你看看

追问

非常感谢这朋友的耐心解答。虽然还是不清楚为什么service要等到activity启动完之后再启动。但是startService(intent)的时候就把地址放在intent里是个很好的办法。再次感谢!如果其他朋友遇到相似的问题,可以试试这个方法。

追答

嗯嗯

参考技术A 你用静态的方式注册广播吧
什么情况下都可以收到广播了
如果你在service里动态注册广播,是不是你的service已经运行完了与你的广播解除关系才收不到广播呢?
那你在onStart里startservice,再发广播不就行了.

以上是关于android app中的服务为啥接收不到广播的主要内容,如果未能解决你的问题,请参考以下文章

android 广播接收不到

android 6.0为啥接收不到短信广播

udp为啥收不到广播中的数据,该怎么处理

使用极光/友盟推送,APP进程杀死后为啥收不到推送

我的Android进阶之旅解决Android8.0发送自定义广播接收不到的问题:PackageManager扫描静态注册广播接收器拿到ResolveInfo,指定包名和完整路径,然后发送自定义广播(代

Android强化:服务与通信