通过清单文件和代码注册广播接收器的利弊是什么?
我通过代码注册了接收器,以便用户可以选择启动和停止接收器,以某种方式,我注意到当应用程序被杀死时,接收器没有在“监听”。
这是正常的?
谢谢。
是的,这很正常。您通过代码在活动中注册了广播,应用也被杀死并广播。如果U希望您的广播能够正常工作,则在不启动应用程序时,请在AndroidManifest文件中定义广播。
如果U希望用户可以“取消注册”广播,则可以向onRecieve函数添加额外的逻辑。
当您让用户“取消注册”接收器时,只需将其保存在您的首选项中或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 */
}
}
这是简单的方法,但也许是不好的方法...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句