うさがにっき

読書感想文とプログラムのこと書いてきます

Androidのメインスレッドを強制終了させない方法

概要

Androidのメインスレッドを強制終了させず、アプリを不正終了させないようにする

詳細

メインスレッド(UIスレッド)内で、ErrorやRuntimeExceptionなどの予期せぬエラーが発生するとアプリが落ちてしまう
その際、「setUncaghtExceptionHandler」を使うとメインスレッド内で発生した例外をハンドリングできる

ActivityのonCreateにsetUncaghtExceptionHandlerを仕込むことで、原因を発見できる。

Thread.currentThread.setUncaughtExceptionHandler(new UncaghtExceptionHandler() {
	@Override
	public void uncaghtException(Thread thread, Throwable ex) {

	}
});

でも落とすべきエラーの時落ちなくなるのも困るので、使いドコロは考える

参考

スレッドがスローする例外をキャッチする - 発熱するマイナ魂

良いAndroidアプリを作る139の鉄則

良いAndroidアプリを作る139の鉄則