我整天都在尝试处理状态,想找出为什么当我按下电源键以唤起锁屏时,我的应用程序失去焦点并调用了它的onStop()(正如它应该做的),但然后在屏幕关闭之前又再次调用了onStart()。这会导致问题,因为在锁屏处于活动状态时,我的应用程序中的某些声音(以及可能是其他东西)开始播放。
我该如何确保在锁屏处于活动状态时它被正确地置于后台并停止运行?
我整天都在尝试处理状态,想找出为什么当我按下电源键以唤起锁屏时,我的应用程序失去焦点并调用了它的onStop()(正如它应该做的),但然后在屏幕关闭之前又再次调用了onStart()。这会导致问题,因为在锁屏处于活动状态时,我的应用程序中的某些声音(以及可能是其他东西)开始播放。
我该如何确保在锁屏处于活动状态时它被正确地置于后台并停止运行?
我不久前遇到了这个确切的问题。在 AndroidManifest.xml 中,请确保您有以下内容:
android:configChanges="keyboardHidden|orientation"
这将防止您的活动在运行时“配置更改”时重新启动。请参见处理配置更改。这样,您的应用程序将监听会导致重新启动的事件 - 如方向和键盘可见性更改 - 并在您的 Activity 中处理它们。
在 SO 上也有一个非常相似的问题: Android 上旋转时活动重新启动