从推送打开应用程序时 Activity 生命周期回调的不同调用顺序
Different call sequence of the Activity lifecycle callbacks while opening app from the push
我在从推送通知打开应用程序时看到了一个奇怪的行为。
有2种情况:
1) 应用程序处于后台且设备已解锁;
2) 应用程序处于后台且设备已锁定。
当设备收到推送通知时,我点击它,我的应用程序启动(如果需要,设备屏幕正在解锁)并且我看到以下顺序的 Activity生命周期回调:
1) 在第一种情况下 - onResume 被调用一次;
2) 在第二种情况下 - onResume -> onPause -> onResume。
我对第二种情况感兴趣。第二个 onResume 的电话我明白了。
为什么Android调用onPause的回调?
它是我的应用程序设置中的默认行为还是问题(例如我的 Activity 中的特定启动模式)?
任何人都可以帮助我了解第二种情况以及如何避免它?
Whosebug 上有很多关于 onResume()
和 onPause()
被多次调用并结合使用锁屏的相关问题。这似乎是一个普遍的问题。通常,onPause()
和 onResume()
可以被调用多次,也可以快速连续调用,您的应用程序需要足够强大才能处理这种情况。
参见:
- Android Activity lifecycle and locking/unlocking device
- onResume being called over and over while phone screen is locked
- Locking screen of Android phone results in several subsequent onPause/onResume events
- Lock screen triggers application lifecycle events of different activity
我在从推送通知打开应用程序时看到了一个奇怪的行为。
有2种情况:
1) 应用程序处于后台且设备已解锁;
2) 应用程序处于后台且设备已锁定。
当设备收到推送通知时,我点击它,我的应用程序启动(如果需要,设备屏幕正在解锁)并且我看到以下顺序的 Activity生命周期回调:
1) 在第一种情况下 - onResume 被调用一次;
2) 在第二种情况下 - onResume -> onPause -> onResume。
我对第二种情况感兴趣。第二个 onResume 的电话我明白了。
为什么Android调用onPause的回调?
它是我的应用程序设置中的默认行为还是问题(例如我的 Activity 中的特定启动模式)?
任何人都可以帮助我了解第二种情况以及如何避免它?
Whosebug 上有很多关于 onResume()
和 onPause()
被多次调用并结合使用锁屏的相关问题。这似乎是一个普遍的问题。通常,onPause()
和 onResume()
可以被调用多次,也可以快速连续调用,您的应用程序需要足够强大才能处理这种情况。
参见:
- Android Activity lifecycle and locking/unlocking device
- onResume being called over and over while phone screen is locked
- Locking screen of Android phone results in several subsequent onPause/onResume events
- Lock screen triggers application lifecycle events of different activity