私はかなりの数のスレッドでアプリを開発していますが、これまでのところクラッシュすることがよくあります。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);
}
}
}