我想在android中创建一个无限循环,以检查某些应用是否处于活动状态。 如果不使用太多的CPU,最好的方法是什么?
可能是一个while循环或处理程序还是什么?
谢谢,
彼得
答案 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
更改为您需要线程运行的频率来自定义运行频率。