无法在scheduleTaskExecutor中获得时间

时间:2015-01-17 19:29:41

标签: android calendar task

我有一个问题我不明白,我使用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运行我的任务时,时间不会更新,但是当我使用按钮运行相同的任务时它会起作用... 谢谢你的帮助:))

1 个答案:

答案 0 :(得分:0)

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

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é)");
}});

我希望它对某人有用:)