android 当应用被杀死时广播接收器不监听

android broadcast receiver not listening when app get killed

通过清单文件和代码注册广播接收器的优缺点是什么?

我通过代码注册了我的接收器,以便用户可以选择启动和停止它,不知何故,当应用程序被杀死时,我注意到接收器不是 'listening'。

正常吗?

谢谢。

是的,很正常。您通过代码在 activity 中注册了广播,应用程序被终止并广播了。 如果你想要你的广播作品,当应用程序没有启动时,在 AndroidManifest 文件中定义广播。

如果您希望您的用户可以 "unregister" 广播,您可以在 onRecieve 函数中添加额外的逻辑。

当你让你的用户 "unregister" 接收器时,只需将它保存在你的首选项或数据库中,无论什么,并在工作之前检查这个值:

@Override public void onReceive(Context context, Intent intent) {
    boolean isUnregisteredByUser = getSharedPreferences("MyPrefs", context.MODE_PRIVATE)
        .getBoolean("IS_UNREGISTERED", false);

    if(!isUnregisteredByUser){
        /* do stuff, handle intent etc */
    }
}

这是简单的方法,但可能不好...