【问题标题】:Android receiver cannot always get broadcast correctlyAndroid 接收器无法始终正确广播
【发布时间】:2014-03-02 18:43:26
【问题描述】:

我在我的 Android 应用程序中添加了一个包接收器,并且已经分发了几个月。

最近发现不是所有的 PACKAGE_ADDED 广播都能被我的接收器接收到。

看了一会,有人说如果你的应用被用户或者系统杀掉了,那么你就再也收不到广播了。

我的问题是:

  1. 这是真的吗? 确认,如果您从设置->应用程序->强制停止终止您的应用程序 那么您的应用程序将不会收到任何广播。
  2. 我怎样才能防止这种情况发生,或者有解决办法吗?

【问题讨论】:

    标签: android broadcastreceiver package


    【解决方案1】:

    1.是的,确实如此。

    2.看一下WakefulBroadcastReceiver,它会在收到 Intent 时唤醒。然后确保你生成例如。 IntentService,以便它在后台处理您的工作。

    查看 CommonsWare 的 WakefulIntentService 以获取实施示例。

    【讨论】:

    • 我尝试了 WakefulBroadcastReceiver,但是当我手动终止我的应用程序时它不起作用,我无法再接收任何 PACKAGE_ADDED 广播了
    • 我假设您已经在清单中注册了您的接收器,而不是在您的代码中?如果不确定,请务必在 Manifest 中注册您的接收器。
    • 我已经在 Manifest 中注册了。还是不行。
    • 你的意图过滤器中有<data android:scheme="package" />吗? stackoverflow.com/questions/10888768/…
    • 似乎也可能行不通; stackoverflow.com/questions/1593022/…。如果这是真的,那么我会利用警报管理器并以一定的时间间隔注册接收器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多