gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:44:57 24 4
gpt4 key购买 nike

所以我刚刚意识到,当单击电源按钮关闭屏幕时,我的 Activity 中会调用 onStop。以前只调用了 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 项目声明的 targetSDKversion 为 10 或更低,则在单击电源按钮时会调用 onPause,但不会调用 onStop。这与许多人的想法相反。但是,如果 targetSDKversion = 11 或更高版本,则在单击电源按钮时将调用 onPause 然后 onStop

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

关于android - 单击电源按钮现在在 Android KitKat 上的 Activity 中调用 onStop,以前只是 onPause?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24887560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com