前提
Thread.setDefaultUncaughtExceptionHandlerを使用して
Catchされていない例外発生時の処理を記述しています。
例外が発生した際に、AlertDialogを表示し
OKボタンが押されたら、アプリを終了する、という処理を作成したいのですが
うまくいきません。
デバッグで動かすと例外発生時にAlertDialog.Builderを通過しているのですが
AlertDialogが表示されず、しばらく待つとアプリを閉じるか待つかの選択の
ダイアログが上がります。
実現したいこと
どの様にすればAlertDialogを表示させる事ができるでしょうか。
該当のソースコード
kotlin
1class MainActivity : AppCompatActivity() { 2 3 private lateinit var binding: ActivityMainBinding 4 5 override fun onCreate(savedInstanceState: Bundle?) { 6 super.onCreate(savedInstanceState) 7 setContentView(R.layout.activity_main) 8 9 binding = ActivityMainBinding.inflate(layoutInflater) 10 val view = binding.root 11 12 binding.buttonEx.setOnClickListener { 13 throw Exception("xxx") 14 } 15 16 Thread.setDefaultUncaughtExceptionHandler { _, _ -> 17 // 例外発生時にこの処理は通るがダイアログが表示されない 18 AlertDialog.Builder(this) 19 .setTitle("タイトル") 20 .setMessage("メッセージ") 21 .setPositiveButton("OK") { _, _ -> 22 exitProcess(2) 23 }.show() 24 } 25 26 setContentView(view) 27 28 } 29} 30
補足情報(FW/ツールのバージョンなど)
targetSdk 32
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/13 04:01