无法在 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é)");
}});
希望对大家有用:)
我有一个问题我不明白,我使用 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é)");
}});
希望对大家有用:)