您好!我正在开发一个 BroadcastReceiver 监听“android.intent.action.PHONE_STATE”的应用程序,它在电话状态更改时运行(我用它在检测到来电时运行代码)。这在我的大多数测试手机上都可以正常工作,但有一些似乎根本不会触发接收器。但是,一旦这些有问题的手机重新启动,一切都会按预期进行。
在 BroadcaseReceiver 接收任何东西之前,这些电话是否需要重启?有没有一种方法可以检测它是否未运行并手动“启动”BroadcaseReceiver?我很困惑,所以如果你能提供任何帮助,我将不胜感激。
谢谢。
最佳答案
扩展这个问题:从 Android 3.1 开始,已安装的应用程序被置于“STOPPED”状态。要从停止的应用程序调用 BroadcastReceiver,需要额外的 broadcast intent flag是必需的。
更多详情:http://developer.android.com/sdk/android-3.1.html#launchcontrols
我在我的应用程序(适用于 Android 3.1 之前)中创建了 FLAG_INCLUDE_STOPPED_PACKAGES
常量 (=32) 并将其添加到我的广播 Intent intent.addFlags(FLAG_INCLUDE_STOPPED_PACKAGES);
关于安装后 Android BroadcastReceiver 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5775118/