单击电源按钮现在会在 Android KitKat 上的 Activity 中调用 onStop,以前只是 onPause?

2023-12-31

所以我刚刚意识到,当单击电源按钮关闭屏幕时, onStop 会在我的 Activity 中被调用。以前只调用了 onPause。这是 KitKat 的改变吗?是否有任何地方有关于它的注释(是故意的)吗?这是 KitKat 的改变还是特定制造商实施的?

编辑:我将很快更新更多信息。我认为这种变化比我最初意识到的更微妙,可能是因为我持有部分唤醒锁或监听 GPS 更新。无论如何,我只知道在我的代码中,在 KitKat 之前,单击电源按钮时不会调用 onStop。也许这也取决于设备。

编辑:新信息。通过以下设置,单击电源按钮时不会调用 onStop():Android minSDKVersion=4 和 targetSDKVersion=8(如果使用 Android Studio,还请设置compileSdkVersion=8)。在 2 台设备上验证了这一点(运行 KitKat 和 JellyBean)所以这个问题不是原文中首先提到的 KitKat 问题,而是 min,target sdk 设置。将获得赏金任何人都可以找到更改时的参考,或者至少显示第一个最小/目标 sdk 设置,该设置更改了通过单击电源按钮调用 onStop 的行为。


Honeycomb 带来了生命周期的变化,或者将针对 sdk 10 或更低版本的应用程序更改为针对 sdk 11 或更高版本的应用程序时。

如果Android项目声明的targetSDK版本为10或更低,那么当单击电源按钮时,会调用onPause,但不是 onStop。这与很多人的想法相反。但是,当 targetSDKversion = 11 或更高版本时,onPause 然后 onStop单击电源按钮时将被调用。

应该注意的是,在某些文档中,它指出 onStop 将“当 Activity 对用户不再可见时调用,因为另一项活动已经恢复并正在涵盖这一点。 “(强调)但在许多其他地方,它只是声明只要当前活动不再可见,就会调用 onStop。因此,在 SDK 11 之前,电源按钮单击可能是故意只调用 onPause,因为没有其他活动覆盖当前的屏幕。屏幕完全关闭。然后,他们使用 Honeycomb 更改了实现以匹配其他解释(不再可见)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击电源按钮现在会在 Android KitKat 上的 Activity 中调用 onStop,以前只是 onPause? 的相关文章

随机推荐