目前我有一个在UI线程上运行的CountdownTimer,并且正在根据onTick更新界面。
它并不总是按预期工作,因为我看到如果我把它放在后台(按下主页按钮)并启动其他CPU需要的应用程序,应用程序可能会卡住。我想最好的解决方案是将CountDownTimer移动到后台线程。我错了吗?
根据CountDownTimer的勾选更新UI线程的最佳方法是什么?使用AsyncTask可能不是一个好主意,因为它建议用于短任务,但我发现了一些针对IntentService和LocalBroadcastManager的建议。
实现这一目标的最佳解决方案是什么?例子很棒。谢谢!
答案 0 :(得分:0)
1)使用AlarmManager和Pending意图定期进行未来任务。 Check this
2)使用Handler发布Runnable以更新UI。
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(context,"This is run on UI thread",Toast.LENTH_SHORT).show();
}
});