Javaでこの文がフリーズします... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
Javaでこの文がフリーズします... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main) ALA(this); } static void ALA(Activity activity) { TimerTask timerTask = new TimerTask(){ @Override public void run() { Toast.makeText(activity, "AAa", Toast.LENGTH_SHORT).show(); } }; Timer timer = new Timer(); timer.schedule(timerTask, 4000); } アプリを開いて4秒後にメッセージが表示されるようにしたいんです.... ご教授願います。
ベストアンサー
フリーズは画面が固まって操作できなくなることを差します。 スマホでこの状況になると電源ボタンで暗転、それでもダメならバッテリー抜いて強制シャットダウンくらいしかないです。 本件のコードを見る限り、タイマースレッドからUI操作系メソッド実行によるエラーでアプリが強制終了してるだけではないでしょうか? その場合、「フリーズ」ではなく「強制終了」と言います もし本当にフリーズしてるなら 端末に何か致命的な問題があります。スマホを買い換えましょう もし強制終了のことなら、 Toast.makeText(activity, "AAa", Toast.LENGTH_SHORT).show(); をUIスレッドで行いましょう。 4秒後に表示するだけなら TimerではなくHander#postDelayedで良いです new Handler().postDelayed(new Runnable() { @Override public void run() { Toast.makeText(activity, "AAa", Toast.LENGTH_SHORT).show(); } }, 4000); // 待ち時間
質問者からのお礼コメント
毎回お世話になっています!!本当にありがとうございます! フリーズではなく強制終了なんですね! 教えて頂きありがとうございます!!
お礼日時:2020/11/27 8:41