ハンドラーとランナブルがあり、ランナブルは5秒ごとに画面にトーストを投稿します。コードは次のとおりです。
Handler handler = new Handler();
Runnable runnable = new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "DISPLAY MESSAGE" + walking, Toast.LENGTH_SHORT).show();
handler.postDelayed(runnable, 5000);
}
};
同じアクティビティ内で、kill ボタンを押してコールバックを削除し、次のように呼び出します。
handler.removeCallbacks(runnable);
上記が呼び出されると、トーストの表示が停止するため、これまでのところすべて問題ありません。アクティビティを離れて別のアクティビティに移動すると、トースト メッセージが表示され続けます。これは私が望むものですが、ランナブルが作成された最初のアクティビティに戻ってキル ボタンを押しても、ランナブルは削除されません。出入りするときにランナブルを削除できなくなりました。
SOでハンドラーとランナブルを使用して見たほとんどすべての例を使用してみましたが、これを理解するのに役立つものは何もありませんでした。
アクティビティを離れて戻ったときに、新しい実行可能なオブジェクトとハンドラー オブジェクトが作成される可能性がありますか? もしそうなら、なぜ最初のランナブルが実行を続けるのですか?