2016-06-23 6 views

答えて

2

あなたはちょうどあなたが終了したいときbreakを使用してください

while(true) 

ような何かを行うことができます。

また、このような何かを行うことができます:

boolean run = true; 
while(run) 
{ 
    if()//Whatever you want to cause the loop to stop. 
    { 
     run = false; 
    } 
} 
0

は、私がスレッドに無限ループを使用することはありません。私はこのようなスケジュールされたタスクを使用します。 SO

private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); 
    scheduler.scheduleAtFixedRate(yourRunnable, 8, 8, TimeUnit.HOURS); 

から、その後、あなたはそれがTimeUnitしかし頻繁にあなたが実行するスレッドを必要とするために変更することで実行する頻度をカスタマイズすることができます。

7

Handlerを使用します。

import android.os.Handler; 

// Create the Handler 
private Handler handler = new Handler(); 

// Define the code block to be executed 
private Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
     // Insert custom code here 

     // Repeat every 2 seconds 
     handler.postDelayed(runnable, 2000); 
    } 
}; 

// Start the Runnable immediately 
handler.post(runnable); 

実行可能の実行を削除するには:

handler.removeCallbacks(runnable); 
+0

私はこれを試してみましたが、それはUIが遅くなります。 –

+0

"runnableが初期化されていない可能性があります"エラーをエスケープする 'runnable'宣言の前に配列 ' final Runnable [] runnables = new Runnable [1];を作成しました。 postDelayed'をこの行に 'handler.postDelayed(runnables [0]、2000);' – DigaoParceiro

関連する問題