今、私はブール値flag1 == trueの間に音量を上げる関数を作ろうとしています。だから私がやりたいことは音量を上げること(私はこれを行うことができる)で、何もしないで( "nop")待ってからフラグを再度チェックすることです。Android - タスクを実行し、何もしないでもう一度タスクを実行しますか?
私はThread.sleep()でwhileループを実行しようとしましたが、ちょっと信頼できない動作をしました。私はフラグをチェックすることが重要ですので、私は複数回起動されているかもしれないサービス内からこの関数を呼び出すことに注意してください。
は、ここで私が試したもののサンプルです:
private void cycleVolume() {
while (flag1 == true) {
mAudioManager.adjustVolume(AudioManager.ADJUST_RAISE, AudioManager.FLAG_PLAY_SOUND);
try {
Thread.sleep(750);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
FLAG1がうまくいけば、この関数の実行を停止する必要がありBroadcastReceiverイベント、から偽になります。しかし、テストでは、これが起こるはずの後、これはかなりの間は起こらないことに気がつきました。そして、私がそこに問題があることを推測する前に、スレッドで多くのことをやったことがないからです。
私は代わりに何をしていますか?
ありがとうございました。
どのようにフラグを更新しますか? – Gix
このフラグは、メディアボタンの押下を待ち受けるBroadcastReceiverによって非同期に変更されます – JDS