私は、外部フラグがtrueの間にXミリ秒ごとに関数myFunction()を実行したいだけです。しかし、私はスレッド(アプリクラッシュ)、タイマー(アプリクラッシュ)と運がなかった。ハンドラ/ランナブルは少し優れているが、一般的に、私のようなものがあります:Android - 条件がtrueの間にXミリ秒ごとに関数を実行しますか?
Runnable rr = new Runnable() {
public void run() {
if (flag1 == true) {
myFunction();
} else {
return;
}
}
};
handler.postDelayed(rr, 1000);
をしかし、問題は、実行は1000ミリ秒後に次々と来るです。 myFunctionの実行を1回、1000msを待つ、myFunctionを呼び出す、1000ms待つ、myFunctionを呼び出すなど、flag1がfalseになるまでしたい。
私はしばらくこのことに悩まされていますので、どんな助けでも大歓迎です。
EDIT - より多くの質問情報
次のようにハンドラが定義されています
プライベートハンドラハンドラ=新しいハンドラ();
そのクラスは、外部ハードウェアからの非同期イベントに基づいてフラグの変更をリスンしようとしているBroadcastReceiverです。
は 'MyFunctionを()' UIスレッドへのアクセスを必要としないか、それがバックグラウンド同期(またはそのようなもの)であるのに役立ちます願って、あなたのニーズに合わせなければなりませんか? – Haphazard
@Haphazard - はい、myFunction()には現在トーストが含まれているため、UIアクセスが必要です。 @Zak - ハンドラで質問を更新します。これは単なる基本コンストラクタHandler() – JDS