安卓:如何检测设置是否通过通知下拉菜单更改?

3
在我的应用程序中,我需要使用NFC(不过,任何需要GPS的人也会遇到这个问题)。在我的MainActivity中,我在onResume方法中检查是否启用了NFC。
当有人下拉通知栏时,他们可以选择更改很多设置,例如GPS和NFC。令我惊讶的是,当下拉通知菜单时,应用程序并不会调用onPause。通过通过通知菜单禁用NFC,用户就绕过了我的应用程序的一个层面(至少是暂时的)。
有什么方法可以缓解这种情况吗?我想我可以每隔几秒钟检查一次NFC是否打开,但我认为这太过繁琐。
一个非常简陋的方法是以某种方式钩入屏幕在下拉时变暗,并且在推上通知菜单时变亮的事实……不过这可能只是我的手机。这相当麻烦。
1个回答

2

你说在 onResume 和 onPause 中注册和取消注册监听器。我选择在 onCreate 中注册,在 onDestroy 中取消注册,同时保留我目前拥有的 onResume/onPause 检查。你为什么建议使用 onResume/onPause 而不是 onCreate/onDestroy? - David
很高兴为您服务。Android系统充满了各种信息广播,非常实用的东西。 - Budius
修改了我的评论,因为我有一个问题。 - David
1
额外问题的答案:创建/销毁活动可以在后台完成。因此,我通常只在Activity在屏幕上时执行这些操作。在onResume中读取最新的值,更新任何View并注册更新。在onPause中取消注册更新。有些人建议在onStart/onStop中也执行这些操作(对于显示对话框不会调用该方法)。但是创建/销毁通常用于视图创建和配置,适配器设置。更多的是视图构建而非数据处理。 - Budius
啊,我懂了。我想我会选择onStart和onStop。对我来说似乎很合适。再次感谢 :) - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接