【问题标题】:Force stop will make app's receiver not being called?强制停止会使应用程序的接收器不被调用?
【发布时间】:2013-06-19 11:56:48
【问题描述】:

我有一个用 XML 声明的服务,它响应 PACKAGE_ADDED 广播意图。 它工作正常,但我刚刚发现如果我强制停止应用程序,接收器将不再收到任何东西。它没有被调用。

这正常吗?我能做些什么?

我需要确保它始终响应。

【问题讨论】:

  • 嗯,我也面临同样的问题。经过多次调试,我终于意识到如果我使用 CleanMaster 杀死应用程序,我的 WifiEnabledReceiver(用于跟踪 Wifi 状态)将永远不会收到任何东西。
  • 如果活动不在前台,请尝试使用服务并安排警报再次运行服务,这将读取接收器。

标签: android broadcastreceiver forceclose


【解决方案1】:

自 Android 3.1 版以来,应用程序在手动凝视一次之前无法接收广播意图。 在第一次启动之前,应用程序被启动器视为“已停止”。 (http://developer.android.com/about/versions/android-3.1.html 在“停止的应用程序上启动控件”下)。

如果您手动强制停止应用程序,此标志将再次设置,您需要手动重新启动它以使其再次接收事件。

【讨论】:

    【解决方案2】:

    尝试添加FLAG_INCLUDE_STOPPED_PACKAGES

    this FLAG 在你的意图中。

    【讨论】:

    • 请提供答案。
    【解决方案3】:

    如果您的接收器是由您的服务动态注册的,那么当他被杀死时,接收器也是。 但是,如果您在 XML 中声明您的接收器,这应该可以工作。 (像往常一样启动接收器)

    【讨论】:

    • 在 android 3.1+ 中不再可用。现在在 android 3.1+ 中,当应用程序被强制停止时,应用程序将不会接收广播接收器,即使它们已在清单文件中注册。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    相关资源
    最近更新 更多