[解決済み] タイマー・タスクの一時停止と再開の方法
2022-02-07 20:49:04
質問
Androidアプリで、TextViewを異なる色で点滅させるアニメーションがあります。これを実装するために、TimerTask、Timer、Runnableメソッドを使用しました。アニメーションの途中でユーザーがアプリから離れると onPause() でスレッドを停止し、ユーザーがアプリに戻ると onResume() でスレッドを再開させることが必要です。以下は私が実装したコードですが、(onPause()とonResume()の部分が)動作しておらず、その理由がわかりません。同じような事柄に関する他の投稿をいくつか読みましたが、私の状況で何をすべきかを理解する助けにはなりませんでした。TimerTasks は時代遅れで、ExecutorService メソッドを使用する必要があるようですが、この機能をどのように実装すればよいのか、私には不明です。
...timerStep5 = new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (b5) {
cashButton2SignalText.setBackgroundColor(Color.RED);
cashButton2SignalText.setTextColor(Color.WHITE);
b5=false;
} else {
cashButton2SignalText.setBackgroundColor(Color.WHITE);
cashButton2SignalText.setTextColor(Color.RED);
b5=true;
}
}
});
}
};
timer5.schedule(timerStep5,250,250);
}
public void onPause(){
super.onPause();
timerStep5.cancel();
}
public void onResume(){
super.onResume();
timerStep5.run();
}
解決方法は?
の後に
TimerTask
がキャンセルされた場合、再度実行することはできませんので、新しいインスタンスを作成する必要があります。
詳細はこちらをご覧ください。
https://stackoverflow.com/a/2098678/727768
ScheduledThreadPoolExecutor
は新しいコードに推奨され、例外やタスクがスケジュールされた時間より長くかかるようなケースを処理します。
しかし、あなたのタスクの場合
TimerTask
で十分です。
関連
-
[解決済み】com.android.ide.common.process.ProcessException: aaptの実行に失敗しました! どうすればいいですか?
-
[解決済み] カスタムアダプタからnotifyDataSetChangeが機能しない
-
[解決済み] TypeError: cb.apply は関数ではありません。
-
[解決済み] エラー - Android リソースのリンクに失敗しました (AAPT2 27.0.3 Daemon #0)
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
-
[解決済み】「px」、「dip」、「dp」、「sp」の違いは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studioでパラメータ化されたユニットテストを実行すると、指定されたインクルードに対するテストが見つからないエラーが発生する
-
[解決済み】Android: Intent エラーを処理するアクティビティは見つかりませんでしたか?どのように解決するのか
-
[解決済み】react-native: コマンドが見つかりません。
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み] 設定 ':classpath' の依存関係をすべて解決できなかった。
-
[解決済み] [Solved] Error "File google-services.json is missing from module root folder. これがないとGoogle Services Pluginは機能しません" [重複]。
-
[解決済み】Android Studioでused import文がunused import文に指定されるのはなぜ?
-
[解決済み】Android Studio 3.2 - com.android.tools.build:aapt2:3.2.0-4818971 を見つけられませんでした。
-
[解決済み】Android Studio。Android.support.design.widget.FloatingActionButton クラスを膨らませるのにエラーが発生する。
-
[解決済み] AndroidでBluetoothが有効かどうかのチェックに失敗する(REQUEST_ENABLE_BTを変数に解決できない)。