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