安装后 Android BroadcastReceiver 不工作

标签 android broadcastreceiver

您好!我正在开发一个 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/

相关文章:

java - 广播接收器或接口(interface)在两个 Activity 之间进行通信?

android - 第二次从图库中选择图像不起作用并显示黑屏

android - 当纯色透明时,形状中的圆角会显示颜色

android - Admob 安卓 : No callback to onAdLoaded after internet connection is established

android - 广播接收器未注册

android - 需要在 android 解锁屏幕之前运行我的应用程序

java - AlarmManager 从不在 AlarmReceiver/BroadcastReceiver 中调用 onReceive

android - 在android中每2分钟显示一次 toast 的后台服务

android - Content Provider INSTALL_FAILED_CONFLICTING_PROVIDER(将内容提供程序安装为单独的 apk)

当应用程序被杀死时,Android 小部件 PendingIntent 停止工作