我想知道在Android编程中创建无限循环的最佳方法是什么,同时考虑到性能? (类似于(;;),AsyncTask或while(true)......)。欢呼声。
答案 0 :(得分:3)
如果您使用无限期while
或for
循环,则会大大降低应用的性能,冻结用户界面,如果您执行任务,一段时间后会出现application not responding
错误UI线程本身。
相反,如果您想在某个时间间隔内连续执行某项任务,请考虑使用Timer
。
TimerTask timer= new TimerTask(){
@Override
public void run() {
//Do your task here
runOnUiThread(new Runnable() {
@Override
public void run() {
//Task which involves manipulating UI
}
});
}
然后您可以固定价格致电Timer
。
t.scheduleAtFixedRate(timer , 0 , 5000);
因此,上面的代码会为每个TimerTask
调用5 seconds(5000 ms)
。由于它在单独的线程上运行,因此性能没有问题。
有关详细信息,请参阅官方文档http://developer.android.com/reference/java/util/Timer.html