在处于停止状态的应用程序中接收广播

时间:2017-06-13 14:32:38

标签: android

这里的关键字是Hyuawei,因为在这个设备上(ALE-L21@Android5.0.1)我得到了

06-13 14:28:06.470 3198-3746/? I/ActivityManager: FireWall skip stopped pkg: com.my.package for broadcast!

我发送广播的方式:

Intent intent = new Intent("SOME_ACTION_NAME");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    context.sendBroadcast(intent);

接收器当然是在清单中导出的,可以在三星等其他设备上使用。

有没有人遇到过这方面的工作?

1 个答案:

答案 0 :(得分:2)

您的应用程序似乎处于停止状态,原因是它已安装但用户从未启动过活动,或者用户单击“设置”中的“强制停止”按钮,或者设备在其他地方使用“强制停止” (例如,滑动概览屏幕)。

AFAIK,FLAG_INCLUDE_STOPPED_PACKAGES不会影响这一点。此外,implicit broadcasts, such as yours, are banned on Android 8.0+

使用明确的Intent(即您设置ComponentName的地方),而不是隐式的,以解决这两个问题。