当设备的液晶显示屏关闭时,服务或处理程序是否也会进入睡眠状态?
does service or handler go to sleep too when device's lcd goes off?
我想开发一个睡眠跟踪应用程序,即使在设备屏幕关闭时也能正常工作。我很好奇 Service
或 Handler
是否在设备屏幕关闭时进入睡眠状态。我了解了 activity 的生命周期,所以我认为 Handler
不会起作用,因为当设备的屏幕关闭时活动会进入休眠状态,并且 Handlers
依赖于它的 activity。但是 Service
是一个后台进程,所以我认为它可能会起作用。
所以我希望设备即使在设备屏幕关闭时也能正常运行。你能给我一些建议吗?
屏幕关闭时服务暂停。这样做是为了防止电池耗尽。
在您的情况下,由于您希望服务 运行 的时间更长,因此您可以考虑在此处使用 PowerManager.WakeLock
是 link.
但您应该记住,使用 WakeLocks 可能会在很大程度上影响设备的电池备份。
如果设备屏幕被锁定,您的应用程序将在一段时间后暂停。 CPU 会一直休眠,直到用户唤醒设备,因此,您的 Service
在设备休眠期间不会执行任何操作。
如果你想在屏幕关闭时执行一些操作,你可以获取一个WakeLock
:http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
但要小心,使用 WakeLock
太多会很快耗尽电池电量。
此外,另一个可能对您有用的 class 是 WakefulBroadcastReceiver
:https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html
它的作用是,它接收一些 Intent
并为您获取一个 WakeLock
,以便您可以在 Service
内完成您的工作。没有这个你就不能保证设备会完成工作而不是进入睡眠状态。
does service or handler go to sleep too when device's lcd goes off?
不,您的服务将一直运行进入后台,直到用户强行停止该服务。
如果您希望您的服务一直有效,那么您需要 return START_STICKY 到 onStartCommand()
我想开发一个睡眠跟踪应用程序,即使在设备屏幕关闭时也能正常工作。我很好奇 Service
或 Handler
是否在设备屏幕关闭时进入睡眠状态。我了解了 activity 的生命周期,所以我认为 Handler
不会起作用,因为当设备的屏幕关闭时活动会进入休眠状态,并且 Handlers
依赖于它的 activity。但是 Service
是一个后台进程,所以我认为它可能会起作用。
所以我希望设备即使在设备屏幕关闭时也能正常运行。你能给我一些建议吗?
屏幕关闭时服务暂停。这样做是为了防止电池耗尽。
在您的情况下,由于您希望服务 运行 的时间更长,因此您可以考虑在此处使用 PowerManager.WakeLock
是 link.
但您应该记住,使用 WakeLocks 可能会在很大程度上影响设备的电池备份。
如果设备屏幕被锁定,您的应用程序将在一段时间后暂停。 CPU 会一直休眠,直到用户唤醒设备,因此,您的 Service
在设备休眠期间不会执行任何操作。
如果你想在屏幕关闭时执行一些操作,你可以获取一个WakeLock
:http://developer.android.com/reference/android/os/PowerManager.WakeLock.html
但要小心,使用 WakeLock
太多会很快耗尽电池电量。
此外,另一个可能对您有用的 class 是 WakefulBroadcastReceiver
:https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver.html
它的作用是,它接收一些 Intent
并为您获取一个 WakeLock
,以便您可以在 Service
内完成您的工作。没有这个你就不能保证设备会完成工作而不是进入睡眠状态。
does service or handler go to sleep too when device's lcd goes off?
不,您的服务将一直运行进入后台,直到用户强行停止该服务。
如果您希望您的服务一直有效,那么您需要 return START_STICKY 到 onStartCommand()