【发布时间】:2010-11-24 14:31:16
【问题描述】:
当手机/AP进入睡眠模式时,Android应用程序和属于应用程序的Activity和服务会发生什么?框架会破坏Activity和Services并且OS杀死进程吗?
【问题讨论】:
标签: android
当手机/AP进入睡眠模式时,Android应用程序和属于应用程序的Activity和服务会发生什么?框架会破坏Activity和Services并且OS杀死进程吗?
【问题讨论】:
标签: android
在设备休眠的情况下,Activity 的 `onPause()' 将被调用。阅读activity lifecycle 了解这一点。
操作系统仅在内存/资源不足时终止进程。活动首先被杀死,服务仅作为最后的手段被杀死。
但不能保证他们不会被杀死。这就是为什么当您需要完成一些工作时应该依靠系统服务来调用您:使用 AlarmManager 定期调用您的代码或使用侦听器来通知您系统更改(gps、网络等)。
【讨论】:
当手机休眠时,活动不会被破坏。我相信所发生的只是活动保持不变,但触发 onPause() 方法。
看这张图片:
【讨论】:
我在我的应用程序中看到的是只调用了主要活动 (category.LAUNCHER) 的 onPause() 方法。这发生在手机进入睡眠状态并且在此之前应用程序的主要活动已经启动。
当任何其他活动在手机进入睡眠状态之前已经启动时,第一个 onPause() 被调用,然后是 onStop(),最后是 onDestroy() - 这适用于 category.DEFAULT 中的活动显现。
我不知道问题可能出在我的代码中?
【讨论】:
当手机进入睡眠状态时,会调用 onPause() 方法。此方法只是对您的应用程序的警告。然后根据设备的不同,CPU 也可能会进入睡眠状态,并且代码的执行可能会停止。在大多数设备上,这可能是在屏幕变黑后 10 到 60 秒的任何时间。
进入休眠状态不太可能导致您的应用被杀死。
【讨论】: