如何在Android应用程序崩溃时防止服务被关闭

5

我有一个在前台运行的服务,当应用程序关闭时该服务不会停止,但是当应用程序崩溃时该服务会停止。我想让该服务在应用程序崩溃时继续运行,怎么做才能实现这个结果?


“不想让应用程序崩溃时服务停止”是什么意思?服务会在之后重新启动吗? - Onik
如果应用程序崩溃,服务将停止。我想避免这种情况发生,让服务继续运行。 - angel
然后修复崩溃。 - Tim
你无法避免应用程序崩溃时服务停止,因为进程被终止了。你可以在崩溃后重新启动它。 - Onik
是的,我已经找到了所有我发现的崩溃问题,但如果有任何我尚未检测到的“崩溃”问题在生产环境中出现怎么办呢?在Playstore上有一些应用程序会运行并启动服务,有时应用程序会崩溃,但服务仍然继续运行(我不确定),但Nike应用程序就是其中之一。 - angel
当应用程序崩溃时,与其进程相关的所有内容都会被终止。但是您可以指示如果发生这种情况,Android将重新启动该服务,该服务将继续运行。 - Onik
2个回答

1
让服务在不同的进程中运行。 这样,如果应用程序崩溃,它只会退出主进程。

AndroidManifest.xml:

<service
    android:name=".MyService"
    android:process=":MyServiceProcess"
    />

0
将以下代码添加到服务类中,可以避免应用程序崩溃:

This will stop the app from crashing

@Override
    public void onTaskRemoved(Intent rootIntent){
        stopSelf();
        try {
            Thread.sleep(100);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        super.onTaskRemoved(rootIntent);
    }

 @Override
    public void onDestroy() {
        super.onDestroy();
//Your Runnable
        mRunnable=null;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接