繁体   English   中英

Android BroadcastReceiver安装后无法正常工作

[英]Android BroadcastReceiver not working after install

问候! 我正在研究一个应用程序,它有一个侦听“android.intent.action.PHONE_STATE”的BroadcastReceiver,它在手机状态改变时运行(我在检测到来电时用它来运行代码)。 这在我的大多数测试手机上运行良好,但有些似乎根本没有触发接收器。 但是,一旦这些问题手机重新启动,一切都按预期工作。

在BroadcaseReceiver可以选择任何东西之前,是否需要重新启动这些手机? 有没有办法可以检测它是否没有运行并手动“启动”BroadcaseReceiver? 我很难过,所以我很感激你能提供的任何帮助。

谢谢。

要扩展此问题:从Android 3.1开始,已安装的应用程序将处于“已停止”状态。 要从已停止的应用程序调用BroadcastReceiver,需要额外的广播意图标志

更多细节: http//developer.android.com/sdk/android-3.1.html#launchcontrols

我在我的应用程序中创建了FLAG_INCLUDE_STOPPED_PACKAGES常量(= 32)(对于Android 3.1之前的版本)并将其添加到我的广播意图intent.addFlags(FLAG_INCLUDE_STOPPED_PACKAGES);

在BroadcaseReceiver可以选择任何东西之前,是否需要重新启动这些手机?

假设您的应用程序在PHONE_STATE广播的清单中注册了BroadcastReceiver ,它应该在安装后立即生效。 如果没有,那对我来说感觉就像一辆车。

有没有办法可以检测它是否没有运行并手动“启动”BroadcaseReceiver?

不,主要是因为它通常没有运行,即使事情正常。 Intent - <intent-filter>匹配点创建BroadcastReceiver的实例,使用onReceive()调用它,并在onReceive()返回时处理BroadcastReceiver

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM