我已经将我的设备连接到 PC 并通过设备上的 Eclipse 运行我的服务。现在我想看看我的服务在关机和开机时的行为是什么。问题是一旦关闭设备电源,我的服务就会丢失。是否可以在断电时保持应用程序在设备上持久存在?
谢谢。
当设备关闭时,您的服务将不会运行 - 因为没有电源。但您可以在设备通电后立即提供服务。确保您的服务是高效的,这样当内存变得紧张时它不会被杀死。然后只需使用广播接收器即可捕获
<action android:name="android.intent.action.BOOT_COMPLETED"/>
意图。您可以从接收方发送并打算启动您的服务。您还可以在服务的 Intent Filter 中使用此 Intent 来启动服务。使用带有部分唤醒锁定的 PowerManager 来帮助您的服务在屏幕关闭时运行 - 但请注意:此功能不适用于所有设备 - 在我使用过的所有设备中,此功能仅适用于一半,但并不完美。
如果您想帮助您的服务不再被操作系统杀死 - 使用服务对象中的 startForeground() API 调用将其作为前台服务运行。