ふと思った
「onCreate()
みたいなところで自分をまた呼び出すようにしたらどうなるだろう?」
結果はわかりきっているがやってみた
実際にやってみた
onCreate()
と言っておいてonResume()
に書いていますが気にしない気にしない
class LaboratoryActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_laboratory)
}
override fun onResume() {
super.onResume()
Log.d("korehataihennnamisuwokennsyousurutamenomonodesu,Androidkunn...taete!", "onResume")
startActivity(Intent(this, LaboratoryActivity::class.java))
}
}
結果
MainActivityにおいてあるボタンからLaboratoryActivityに行くと...
LaboratoryActivityの画面は描画されませんが、しっかりと仕込んでおいたログが何回も出ています
少しすると画面が描画されました(なにか限界を迎えた感じがした)
もちろん、UIのボタンは反応しません
だんだん再帰の速さが遅くなってきたので、止めました
まとめ
やる前からわかっていましたが、やっぱりフリーズしました
おまけ 「何もできない!」
やっても意味ないし、やってはいけないのですが、やるときは気をつけましょう
さっき だんだん再帰の速さが遅くなってきたので、止めました なんて言いました
でも、実際はそんなあっさり止まりません、というか本当に止まりません
画面は何も反応しません タスク一覧は出ません ホーム画面にいけません
「ん〜 詰んだ?」いいえ諦めません
なぜかというと
$ adb shell
は全然反応します
そこでam force-stop xxxxx
だったりam kill xxxxx
だったりしましたが、だめでした
画面は凍ったままです
なんとか通知とかを出すくらいはできたので、電源メニューを出して再起動をしましたが、再起動しませんでした
じゃあどうしよう...
結果的には
$ adb reboot
で大丈夫でした
普通に再起動しました
ちょっと焦った