java - 如何使用服务中的倒计时器更新文本

标签 java android android-service countdowntimer

假设我有一个这样的服务,并且我有一个 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;
                }
            }

最佳答案

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

这是一个非常有用的EventBus教程,非常干净且易于理解,希望对您有所帮助!

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

关于java - 如何使用服务中的倒计时器更新文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39061863/

相关文章:

java - Java RuntimeException enableSuppression 参数有什么作用?

android - Android 上长期运行服务的最佳架构

java - 如何创建一个简单/空的 Java 库项目来编译为 Unity 的 Android 服务?

java - Netbeans Java 调试器因内存不足错误而崩溃

java - json中的双引号简单

java - JTextArea 动态扩展(不需要)

java - 通过GSON转换后如何获取对象的字段key?

android - 可搜索 ListView

android - 通过Android使用ClientLogin直接上传YouTube

android - 仅创建一个 Service 实例 (Android)