在后台运行计时器,并在android应用程序中完成时通知主(UI)线程

时间:2016-05-24 16:43:08

标签: android

是否可以在后台运行计时器并在完成时通知主线程(比如片段)? 在下面的代码中,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();

1 个答案:

答案 0 :(得分:1)

有许多方法可以在后台运行计时器,以便在计时器完成时通知主线程。服务,AsyncTask和线程都可以在这里使用。请参阅此SO帖子了解不同的策略:

Difference between Service, Async Task & Thread?

在不了解您的用例的情况下,我建议首先查看AsyncTask,因为它附带预定义的回调以简化与主线程的通信。

这篇SO帖子概述了如何使用AsynTask:

AsyncTask Android example