是否可以在后台运行计时器并在完成时通知主线程(比如片段)? 在下面的代码中,onTick和onFinish在主线程上运行吗?如果没有,那么AyncTask是否有助于在完成计时器时通知主线程?
new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
}
public void onFinish() {
mTextField.setText("done!");
}
}.start();
答案 0 :(得分:1)
有许多方法可以在后台运行计时器,以便在计时器完成时通知主线程。服务,AsyncTask和线程都可以在这里使用。请参阅此SO帖子了解不同的策略:
Difference between Service, Async Task & Thread?
在不了解您的用例的情况下,我建议首先查看AsyncTask,因为它附带预定义的回调以简化与主线程的通信。
这篇SO帖子概述了如何使用AsynTask: