Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android广播接收器在应用程序死机时未监听_Android_Receiver - Fatal编程技术网

android广播接收器在应用程序死机时未监听

android广播接收器在应用程序死机时未监听,android,receiver,Android,Receiver,通过清单文件和代码注册广播接收器的利弊是什么 我通过代码注册了我的接收器,这样用户就可以选择启动和停止它。不知怎的,我注意到当应用程序被关闭时,接收器没有“监听” 这是正常的吗 谢谢。是的,这很正常。您通过代码在活动中注册了广播,应用程序被杀死并广播。 若你们想让你们的广播工作,当应用程序并没有启动时,在AndroidManifest文件中定义广播 如果你想让你的用户可以“注销”广播,你可以在onreceive函数中添加额外的逻辑 当您让您的用户“注销”接收器时,只需将其保存在prefs或DB中

通过清单文件和代码注册广播接收器的利弊是什么

我通过代码注册了我的接收器,这样用户就可以选择启动和停止它。不知怎的,我注意到当应用程序被关闭时,接收器没有“监听”

这是正常的吗


谢谢。

是的,这很正常。您通过代码在活动中注册了广播,应用程序被杀死并广播。 若你们想让你们的广播工作,当应用程序并没有启动时,在AndroidManifest文件中定义广播

如果你想让你的用户可以“注销”广播,你可以在onreceive函数中添加额外的逻辑

当您让您的用户“注销”接收器时,只需将其保存在prefs或DB中,无论什么,并在开始工作之前检查此值:

@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 */
    }
}

这是一种简单的方法,但可能是一种不好的方法…

谢谢Vladymyr,另一个问题是,如果我通过清单注册了广播,我是否仍然能够向用户提供通过代码取消注册的选项?