【问题标题】:Broadcast receiver for PACKAGE_ADDED not working from Android 3.1 onwardsPACKAGE_ADDED 的广播接收器无法从 Android 3.1 开始工作
【发布时间】:2011-12-15 04:58:59
【问题描述】:

我无法启动作为已停止应用程序一部分的广播接收器, 我已经在广播接收器中注册了 PACKAGE_ADDED 事件,该应用程序在 3.0 之前正常工作,但在 3.1 以上我面临这个问题。我使用以下几行来发送意图。

    Intent intent = new Intent(MY_INTENT_ACTION);
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    sendBroadcast(intent);

如果我需要做更多的事情,请告诉我。


添加更多信息:

我的意图是我想在我的 OnReceive 中侦听 PACKAGE_ADDED 广播事件和执行某些处理,如果有任何可能在不启动应用程序的情况下侦听此事件,请告诉我。实现此目的的示例代码将很有帮助。谢谢

【问题讨论】:

  • MY_INTENT_ACTION 的值是多少?您广播此意图与无法接收 PACKAGE_ADDED 有什么关系?

标签: android broadcastreceiver


【解决方案1】:

The docsPACKAGE_ADDED 状态:

这是一个受保护的意图,只能由系统发送。

您不能修改它,或者尝试向它添加标志。来自release notes for 3.1

请注意,系统会将 FLAG_EXCLUDE_STOPPED_PACKAGES 添加到所有广播意图中。

来自FLAG_EXCLUDE_STOPPED_PACKAGES的文档

如果设置,此意图将不匹配当前停止的包中的任何组件。如果未设置,则默认行为是在结果中包含此类应用程序。

所有这一切都意味着您的应用将无法像以前那样工作。您必须确保您的应用已启动才能接收 PACKAGE_ADDED。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多