【发布时间】:2013-12-18 06:46:58
【问题描述】:
假设我想每 10 秒执行一次操作,它不一定需要更新视图。
问题是:像这里这样将计时器与 timertask 一起使用是否更好(我的意思是更高效和有效):
final Handler handler = new Handler();
TimerTask timertask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
<some task>
}
});
}
};
timer = new Timer();
timer.schedule(timertask, 0, 15000);
}
或者只是一个带有后延迟的处理程序
final Handler handler = new Handler();
final Runnable r = new Runnable()
{
public void run()
{
<some task>
}
};
handler.postDelayed(r, 15000);
如果您能解释一下何时使用哪种方法以及为什么其中一种方法比另一种更有效(如果确实如此),我将不胜感激。
【问题讨论】:
-
我读过很多关于 TimerTasks 异常行为的帖子。我的建议是避开它们并使用处理程序 / postDelayed 方法。
-
我更喜欢 Handler-postDelay 方法 - 你有更多的控制权,你可以从内部安排它
-
这里是Timer vs. Handler的一个很好的来源
-
TimerTask 是一个后台任务,所以你不能更新 UI。只是说...
-
对于阅读本文的人:@Yousha Aleayoub 当然你可以使用处理程序。
标签: android performance timer handler timertask