ANRを発生させたい!
結論
.kt
//onClickイベントでタイマー仕込んで、画面上のクリックイベントのオブジェクトを連打する
TimeUnit.SECONDS.sleep(10)
// runOnUiThread { while (true) }
//無限ループはいい感じにANRにならない??
どうしたの?
androidエンジニア的には何言ってるんだという内容ですが、悪意はありません。
公式見る限り、起こさせないようにしたり、確認する方法はあるのですが、意図的に発生させる方法がパッと見当たらなかったのでメモに残します。
参考記事を見てもらえればわかるように、ANRの発生条件は以下の2つです。
- 入力イベント(キーの押下や画面タッチなどのイベント)に対する応答が 5 秒以内にない
- BroadcastReceiverの実行が 10 秒以内に終了しない
個人的にUIスレッドで止まればいいんでしょくらいの認識でいたため、
いざANR起こすぞってなったら、どうやるの?状態でした・・・
これでfirebase CrashlyticsでANRが見れるようになることを確認できるね!!(これがやりたかった)
参考
公式↓
ありがたい記事↓