我開發與不少線程的應用程序,它經常死機至今,每當我打開Eclipse中的新版本,它似乎創建一個新的進程。當活動崩潰,過程保持活着,我不能殺死它
我似乎無法找到殺死舊流程的方法,但它們並未在正在運行的應用中顯示。
我可以看到,我在進程列表中有多個與我的應用程序相關的進程(「ps」命令)。
有沒有辦法確保應用程序進程實際上死於崩潰?
我開發與不少線程的應用程序,它經常死機至今,每當我打開Eclipse中的新版本,它似乎創建一個新的進程。當活動崩潰,過程保持活着,我不能殺死它
我似乎無法找到殺死舊流程的方法,但它們並未在正在運行的應用中顯示。
我可以看到,我在進程列表中有多個與我的應用程序相關的進程(「ps」命令)。
有沒有辦法確保應用程序進程實際上死於崩潰?
你可以殺死你的應用程序的過程:
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);
}
}
}
你嘗試過這個android.os.Process.killProcess(android.os.Process.myPid());
它可以殺死你的進程
這不起作用,應用模具,從Eclipse的替換它的時候,但過程留下來,即使我真的卸載它。也許這個異常是在另一個線程中,你認爲我應該把這個處理程序放在其他線程中嗎? –