問題タブ [postdelayed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 遅延カウントダウン中に中断された場合にハンドラー postdelay プロセスを再起動する方法
うまくいかないという問題があります。クリックするとテキストビューが変わるボタンがあります。次に、2 秒後に を元のテキストにpostdelayed
戻すプロセスをアクティブにします。textview
ボタンを 1 回押してから、この 2 秒間隔内にもう一度postdelay
押すと、最初の押しからカウントダウンが続行され、2 回目の押しからは再開されません。これにより、変更されたテキストを表示したいときに元のテキストが表示されます。
ボタンが押されるたびに、そのインスタンスから遅延が発生します。postdelay
前のものをキャンセルして、新しいものを開始したい。これはこれまでのところ私のコードですが、完成させる方法がわからないため完成していません(動作しません)。
テキストはPREVIOUS_DELAY_HAS_STARTED
ある種のチェック方法である必要があり、そのテキストの下のh.removeCallbacks
とh.postDelayed
コマンドの間に何かが必要だと確信しています。
彼らがこのメソッドを機能させるためのより簡単な方法/より良い方法である場合は、私に知らせてください。私は非常に多くの方法を試してきましたが、ここに非常に近いと感じています。
android - handler.postDelayed を使用して残り時間を取得する
私はhandler.postDelayedメソッドを使用して、いくつかのアニメーションの遅延を作成しています。このような:
あと、アニメが始まるまでの残り時間はどうやったら出ますか?
android - handler.postDelayed() の Runnable の再利用
runnable を再利用することでガベージの作成を回避しようとしています。ただし、これを正しく実装する方法にこだわっています。
これが私の実行可能なラッパークラスです:
そして、ここに私がそれを実装した場所があります:
コメントアウトされたセクションは作業コードです。私が直面している問題は、呼び出されるrotateRunnable
前に内部の変数を設定することです。postDelay()
現時点ではrotateRunnable
、設定された最後の変数のみを実行する可能性が高いため、機能していません。これはsmoothAnimateRotate()
、変数を非常に迅速に更新する for ループ内で実行されるためです。
run
メソッドの変数部分を設定して、run
後で実行するときに正しく設定された変数で実行されるようにするにはどうすればよいですか?
java - postDelay と ScheduledThreadPoolExecutor の比較
遅延が 1 ミリ秒未満のアニメーションを作成しようとしています。
私の調査に基づいて、ScheduledThreadPoolExecutor に関するいくつかの回答が見つかりました。
残念ながら、次のコードを適用しましたが、期待どおりに動作しません..
コードによると、ボタンがクリックされると、mHandler は animateImage を呼び出し、animateImage は doFlipImage を実行してビットマップを作成し、それをキャンバスに割り当て、そのキャンバス上で描画を開始し、このビットマップを使用してイメージビューを無効にします。
mHandler を使用している場合はすべて正常に動作しますが、ScheduledThreadPoolExecutor を使用している場合 (したがって、mHandler.post の代わりに startEffect メソッドを呼び出します)、描画が行われた後にイメージビューが白く表示されます。問題。
android - アプリが Alarm Receiver on-receive メソッド内で終了すると、スケジュールされたハンドラー ポスト遅延タイマー タスクを利用できるようにする方法は?
アラーム受信機の受信メソッド内で20 秒のHandler Post Delayed Timer タスクを使用しました。アラーム受信機の受信メソッドが呼び出される前にアプリを終了すると、アプリは正常に動作します。Handler Post がスケジュールされた Timer タスクを遅らせたら、アプリを終了します。次に、アプリケーションを終了した後、Handler Post Delay Timer タスクが自動的にキャンセルされました。したがって、ポスト遅延タイマー タスクがアプリケーションで呼び出されることはありません。
コードスニペット:
アプリを終了した後、次のアラーム受信機の受信メソッドが呼び出されると、タイマー タスクがスケジュールされ、正常に動作します。
Alarm Receiver on-receive メソッド内で goAsync() を試しました。したがって、これもこの問題の解決には役立ちません。アプリケーションを終了すると、スケジュールされたタイマー タスクがキャンセルされます。
スケジュールされたハンドラー ポスト遅延タイマー タスクを保持する方法は、アプリがアラーム レシーバーの受信メソッド内で終了したときに使用できます。
これについて私を助けてください。