我有关于传感器管理员何时unregisterListener
的基本问题。应该在onStop()
还是onDestroy()
。
用例:
我想在点击开始按钮时记录accelorometer
,并在用户点击停止按钮时停止。数据的频率是每分钟。所以我开始了timer
。
但问题是,每次orientation
根据Android架构进行更改时,onStop()
都会被调用。在onStop()
中,我取消了计时器并取消注册了侦听器。
如果我在onResume()
启动定时器/寄存器监听器,那么再次,频率将不会保持1分钟,并且无需用户按下开始按钮即可记录数据。
有人可以帮我解决这个问题。
感谢。
答案 0 :(得分:4)
您可能希望使用Service
在后台运行加速计数据采集,使用基本意图与其进行通信并不太复杂。
或者,如果您只想“保持”轮换,当活动被破坏然后重建时,请尝试覆盖Activity
onRetainNonConfigurationInstance()
和getLastNonConfigurationInstance()
方法(了解更多关于它here)
答案 1 :(得分:3)
OnDestroy()
无法保证被调用。因此,您应该在onPause
或onStop
但问题是每次根据Android架构改变方向
有一种方法可以防止在清单中发生这种情况。我相信其他人会发布信息。