Handler.postDelayed()
を使用できます。私はあなたがバックグラウンドスレッドで無限ループをやっていると仮定しているので、具体的にはHandler
のスレッドとしてLooper.getMainLooper()
を使用しています。メインスレッドでループしている場合は、まずはお勧めしない可能性があります。Handler
を更新して、別のスレッドのLooper
を使用する必要があります。
new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
@Override
public void run() {
flag = true;
}
}, 500);
別の選択肢は、所望の時間のために、睡眠を新しいThread
を作成し、それに応じてフラグを設定することです。
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
Log.e("Timeout Thread", "Interrupted", e);
}
flag = true;
}
}).start();