当活动崩溃时,该过程仍然存在,我无法杀死它

时间:2012-09-28 11:11:45

标签: android multithreading crash kill-process

我正在开发一个有很多线程的应用程序,它经常崩溃到目前为止,每当我从eclipse加载新版本时,它似乎都会创建一个新进程。

我似乎无法找到杀死旧流程的方法,但它们并不适用于正在运行的应用程序。

我可以看到我在进程列表中有多个与我的应用程序相关的进程(“ps”命令)。

有没有办法确保应用程序进程真的在崩溃时死亡?

2 个答案:

答案 0 :(得分:1)

你试过这个android.os.Process.killProcess(android.os.Process.myPid());它可以杀死你的进程

答案 1 :(得分:-1)

你可以通过以下方式终止你的应用程序:

System.exit(1);

为了知道您的应用程序何时崩溃(未被捕获的例外),您需要定义:

Thread.setDefaultUncaughtExceptionHandler(new CustomUncaughtExceptionHandler());

在主线程中。

CustomUncaughtExceptionHandler是:

public class CustomUncaughtExceptionHandler implements UncaughtExceptionHandler
{
    private UncaughtExceptionHandler    defaultUEH;

    public CustomUncaughtExceptionHandler()
    {
        this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
    }

    public void uncaughtException(Thread t, Throwable e)
    {       
        // Put system.exit here
        if (defaultUEH != null)
        {
            defaultUEH.uncaughtException(t, e);
        }
        else
        {
            this.defaultUEH = Thread.getDefaultUncaughtExceptionHandler();
            defaultUEH.uncaughtException(t, e);
        }
    }

}