永远运行的Android后台服务

时间:2012-02-02 08:48:30

标签: android service

我需要创建一个将在后台永远运行的应用程序,如果需要,它会打开用户UI的活动。我创建了一个Activity,它是主要的活动,它在onCreate上所做的就是调用startService(new Intent(this,MainService.class)); 问题是在调用服务的onStart命令后,MainService类变为null并且它将停止运行。

我是否需要以不同的方式启动服务?我应该为服务开始一个新线程吗?

谢谢, 内厄姆

3 个答案:

答案 0 :(得分:3)

如果您希望通过app gt close继续运行您的服务,那么您需要返回STICKY。并且还需要使用 BroadcastReciever 。并且您的服务将无法继续运行,因为如果系统需要释放内存然后它会终止,但是是的,您可以确定重启您的服务。因此,我建议您浏览整个文档和服务ServiceBroadcast 它可能对你有所帮助。还有一件事就是偏好哪个过程会先被系统杀死等等......检查出来。

答案 1 :(得分:1)

您需要在服务中创建一个新线程,并使用命令startForeground启动此服务。

答案 2 :(得分:-5)

如果您希望您的服务永远运行,您的代码也需要能够永远运行

onStartCommand {
     while (1) {
         ..
         ..
             //call your activity?
         ..
         ..
    }
}