猿问

Android:当应用被杀死时,保持服务运行

IntentService即使应用被杀死,我也希望在后台继续运行。“杀死”是指长按主页按钮 -> 查看所有正在运行的应用程序 ->将我的应用程序滑到一边 -> 应用程序被杀死,或者长按后退按钮 -> 应用程序被杀死


我的代码如下。在我的MainActivity中:


Intent intent = new Intent(this, MyService.class);

this.startService(intent);

在我的MyService中:


public class MyService extends IntentService {


@Override

protected void onHandleIntent(Intent intent) {

    System.out.println("MyService started");

    run();

}


private void run() {

    while (true){

        System.out.println("MyService still running");

        doSomething();

        waitSomeTime();

    }

}


}

打开应用程序后,我看到该服务正在运行。通过主页按钮最小化应用程序时,它仍在运行。通过后退按钮关闭应用程序时,它仍在运行。但是,如果我如上所述杀死它,它将停止。我该如何解决?


吃鸡游戏
浏览 673回答 3
3回答

绝地无双

如果您的服务是由您的应用启动的,那么实际上您的服务正在主进程上运行。因此,当应用被终止时,服务也会停止。因此,您可以做的是,从onTaskRemoved您的服务方法发送广播,如下所示: Intent intent = new Intent("com.android.ServiceStopped"); sendBroadcast(intent);并有一个广播接收器,它将再次启动服务。我试过了 服务会从所有类型的终止中重新启动。
随时随地看视频慕课网APP

相关分类

Android
我要回答