我正在开发一个有很多线程的应用程序,到目前为止它经常崩溃,每当我从 eclipse 加载新版本时,它似乎创建了一个新进程。
我似乎找不到杀死旧进程的方法,它们不会出现在正在运行的应用程序中。
我可以看到在进程列表(“ps”命令)中有多个与我的应用程序相关的进程。
有没有办法确保应用程序进程实际上在崩溃时死掉?
我正在开发一个有很多线程的应用程序,到目前为止它经常崩溃,每当我从 eclipse 加载新版本时,它似乎创建了一个新进程。
我似乎找不到杀死旧进程的方法,它们不会出现在正在运行的应用程序中。
我可以看到在进程列表(“ps”命令)中有多个与我的应用程序相关的进程。
有没有办法确保应用程序进程实际上在崩溃时死掉?
你试过这个android.os.Process.killProcess(android.os.Process.myPid());
它可以杀死你的进程
您可以通过以下方式终止应用程序的进程:
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);
}
}
}