不变的Android服务

时间:2014-02-25 21:39:41

标签: android service foreground

我一直在查看有关服务的许多问题,但我找不到适合我的问题。 我需要一个服务,它都在BOOT_COMPLETED(未绑定到一个Activity)上启动并一直运行(因此我无法使用AlarmReceiver)。我知道它可能会耗尽我的电池,但到目前为止我并不在乎。它仅用于研究目的。

我有一项监控传感器数据的服务。到目前为止我设法做的是:要么将服务作为常规活动启动,要么只运行+ -20s并且它被停止(我认为SO会将其减少以释放其内存);或者启动在前台运行的服务。它可以保持进程运行,但实际运行服务的类不会以某种方式启动,除了需要的烦人通知。

我在这里提到的代码是在前台运行服务的代码: Implement startForeground method in Android

我的意思是,像WhatsApp这样的应用程序如何不断运行?它在前台运行吗?因为查看设置似乎服务非常稳定,并且它没有显示任何永久通知,因为没有一个服务器就无法运行前台服务。 (How to startForeground() without showing notification?

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您可以使用WakeLock。但请记住,强大的力量带来了很大的责任(再次释放它们而不是过度使用它们)。

但是现在,只有acquire a hefty WakeLock并且只有在你完成之后才会释放它。这应该让你的设备的屏幕和CPU保持清醒,并允许你做你想做的任何事情。