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

前端之家收集整理的这篇文章主要介绍了电源按钮点击现在调用Android KitKat上的Activity中的onStop,以前只是onPause?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

所以我才意识到,当点击电源按钮关闭屏幕时,onStop会在我的Activity中被调用.以前只调用onPause.这是KitKat的变化,并且在任何地方都有关于它的说明(是故意的)吗?这是KitKat的变化还是特定制造商实施的?

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

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

最佳答案
生命周期的变化来自Honeycomb,或者将针对sdk 10或更低的应用程序更改为针对sdk 11或更高版本的应用程序.

如果Android项目声明targetSDKversion为10或更小,那么当单击电源按钮时,将调用onPause,但不会调用onStop.这与许多人的想法相反.但是,当targetSDKversion = 11或更高时,onPause将在单击电源按钮时调用onStop.

应该注意的是,在某些文档中,它声明onStop将“在活动不再对用户可见时被调用,因为另一个活动已经恢复并且正在覆盖这个活动.”(重点补充)但在许多其他活动中它只是声明只要当前活动不再可见,就会调用onStop.因此,在SDK 11之前,也许电源按钮单击是故意调用onPause,因为没有其他活动覆盖当前的活动.屏幕刚刚关闭.然后使用Honeycomb,他们改变了实现以匹配其他解释(不再可见).

猜你在找的Android相关文章