Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.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/9/ios/114.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 - Fatal编程技术网

Android在下一次应用加载时注销广播接收器

Android在下一次应用加载时注销广播接收器,android,Android,我有一种感觉,我已经知道了这个问题的答案,但我不确定。Im使用广播接收器拦截传入的SMS消息 我使用registerReceiver函数以典型方式注册接收器,当您注销接收器时,使用unregisterReceiver函数。我保留了一个全局广播变量,以便根据需要加载和卸载接收器 如果应用程序关闭,就像用户实际关闭应用程序一样,并且我没有在onDestroy方法中注销接收器,我知道这是一种不好的做法,那么有没有办法在下次加载应用程序时注销接收器?我是否可以创建该广播接收器的另一个实例,然后将其注销

我有一种感觉,我已经知道了这个问题的答案,但我不确定。Im使用广播接收器拦截传入的SMS消息

我使用registerReceiver函数以典型方式注册接收器,当您注销接收器时,使用unregisterReceiver函数。我保留了一个全局广播变量,以便根据需要加载和卸载接收器

如果应用程序关闭,就像用户实际关闭应用程序一样,并且我没有在onDestroy方法中注销接收器,我知道这是一种不好的做法,那么有没有办法在下次加载应用程序时注销接收器?我是否可以创建该广播接收器的另一个实例,然后将其注销

如果应用程序关闭

你可以说你的UI是否在前台。你可以说你的应用程序进程在前台、后台或终止

目前尚不清楚“关闭”意味着什么

就像用户实际关闭应用程序一样

用户可以将应用程序的UI和进程移动到后台(例如,按HOME)。用户可以破坏应用程序的UI并将其进程移动到后台(例如,从上次运行的活动中按BACK)。用户可以终止应用程序的后台进程(例如,将应用程序从最近的任务列表中刷出)。用户可以强制停止应用程序(例如,在设置中按下应用程序的强制停止按钮)

目前尚不清楚“用户实际关闭应用程序”等同于什么

是否有办法在下次加载应用程序时注销接收器


您可能有对
广播接收器
对象的引用,也可能没有。如果您这样做了,请在一些
上下文上调用
unregisterReceiver()
,传入该
BroadcastReceiver
实例。如果没有
BroadcastReceiver
实例,则无法注销接收器。如果您的流程在您注册接收者到现在之间终止,则该接收者将消失,并且实际上已取消注册。

我说的“关闭应用程序”并不是指单击“主页”按钮并将其发送到后台。我的意思是实际上终止这个过程。如果进程终止,接收者是否保持注册?@CBaker:“如果进程终止,接收者是否保持注册?”--否,因为接收者不再存在。明白。非常感谢你的帮助