我正在开发一个有很多线程的应用程序,它经常崩溃到目前为止,每当我从eclipse加载新版本时,它似乎都会创建一个新进程。
我似乎无法找到杀死旧流程的方法,但它们并不适用于正在运行的应用程序。
我可以看到我在进程列表中有多个与我的应用程序相关的进程(“ps”命令)。
有没有办法确保应用程序进程真的在崩溃时死亡?
答案 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);
}
}
}