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

 jack_wangzhu 发布于 2023-01-01 17:52

所以我才意识到,当点击电源按钮关闭屏幕时,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的行为.

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

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

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

    2023-01-01 17:54 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有