我需要创建一个将在后台永远运行的应用程序,如果需要,它会打开用户UI的活动。我创建了一个Activity,它是主要的活动,它在onCreate上所做的就是调用startService(new Intent(this,MainService.class)); 问题是在调用服务的onStart命令后,MainService类变为null并且它将停止运行。
我是否需要以不同的方式启动服务?我应该为服务开始一个新线程吗?
谢谢, 内厄姆
答案 0 :(得分:3)
如果您希望通过app gt close继续运行您的服务,那么您需要返回STICKY。并且还需要使用 BroadcastReciever 。并且您的服务将无法继续运行,因为如果系统需要释放内存然后它会终止,但是是的,您可以确定重启您的服务。因此,我建议您浏览整个文档和服务Service和 Broadcast 它可能对你有所帮助。还有一件事就是偏好哪个过程会先被系统杀死等等......检查出来。
答案 1 :(得分:1)
您需要在服务中创建一个新线程,并使用命令startForeground启动此服务。
答案 2 :(得分:-5)
如果您希望您的服务永远运行,您的代码也需要能够永远运行
onStartCommand {
while (1) {
..
..
//call your activity?
..
..
}
}