在线程中创建无限循环的方法是什么?安卓

时间:2016-06-23 15:12:57

标签: android multithreading loops

我想在android中创建一个无限循环,以检查某些应用是否处于活动状态。 如果不使用太多的CPU,最好的方法是什么?

可能是一个while循环或处理程序还是什么?

谢谢,

彼得

3 个答案:

答案 0 :(得分:10)

使用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);

删除runnable的执行:

handler.removeCallbacks(runnable);

答案 1 :(得分:2)

您可以执行类似

的操作
while(true)

只需确保在您要退出时使用break

您也可以这样做:

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

答案 2 :(得分:0)

我不会在线程中使用无限循环。我会使用这样的计划任务。来自SO

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

然后,您可以通过将TimeUnit更改为您需要线程运行的频率来自定义运行频率。