2

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

我似乎找不到杀死旧进程的方法,它们不会出现在正在运行的应用程序中。

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

有没有办法确保应用程序进程实际上在崩溃时死掉?

4

2 回答 2

1

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

于 2012-09-28T11:43:32.490 回答
-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);
        }
    }

}

于 2012-09-28T11:18:07.267 回答