无法在 scheduleTaskExecutor 中获取时间

Can't get time in scheduleTaskExecutor

我有一个问题我不明白,我使用 scheduleTaskExecutor 每分钟做一个任务,我想更新一个 TextView 显示上次完成任务的时间。

所以这是我的 scheduleTaskExecutor:

public void timed() {
   ScheduledExecutorService scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
      // This schedule a runnable task every minute
      scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
            public void run() {
            doMyTask();
        }
    }, 0, 1, TimeUnit.MINUTES);
}

这是我在 doMyTask 中更新 TextView 的方式:

Calendar c = Calendar.getInstance();
int hrs = c.get(Calendar.HOUR_OF_DAY);
int mnts = c.get(Calendar.MINUTE);
String heure = String.format("%02d:%02d", hrs, mnts);

TextView time = (TextView) findViewById(R.id.status);   time.setText("(heure);

所以我真的不知道为什么当我的任务是 运行 使用 scheduleTaskExecutor 时时间不会更新,但是当我 运行 使用按钮执行相同的任务时它会工作.. . 感谢您的帮助:)

我找到了解决办法! 这是我使用的代码,它工作得很好:

runOnUiThread(new Runnable() {
public void run() {
Calendar c = Calendar.getInstance();
int hrs = c.get(Calendar.HOUR_OF_DAY);
int mnts = c.get(Calendar.MINUTE);
String heure = String.format("%02d:%02d", hrs, mnts);
TextView time = (TextView) findViewById(R.id.status);
time.setText("Mis à jour à : " + heure + " - (occupé)");
}});

希望对大家有用:)