如何在服务中使用倒计时更新文本

How to update text with a Countdowntimer in a service

让我们假设我有这样的服务,并且我有一个 TextView 在每次更新时更新,TextView 位于 MainActivity 中。如何在每次滴答中更新 TextView?

public class CountDownTimerService extends Service {



                public CountDownTimerService() {
                }



                @Override
                public int onStartCommand(Intent intent, int flags, int startId) {
                    CountDownTimer.start();
                    return START_STICKY;
                }



                private CountDownTimer countDownTimer = new CountDownTimerWithPause(300000, 1) {

                    @Override
                    public void onTick(long millisUntilFinished) {


                        /*

                        In this part i need to update text on MainActivity            
                        */
                    }

                    @Override
                    public void onFinish() {

                      Log.i("Timer","Timer finished");

                    }



                @Override
                public IBinder onBind(Intent intent) {
                   return null;
                }
            }

您必须使用 IntentServiceActivityService 之间传递消息。你可以自己做,但有一些已知的库非常高效且易于使用,可以为你做这些事情,比如 EventBus.

这是一个非常有用的 EventBus 教程,非常简洁易懂,希望对您有所帮助!

https://guides.codepath.com/android/Communicating-with-an-Event-Bus