我有一个TextView,我想根据时间(一天中的小时)设置一条消息。为了达到这个目的,我正在使用 -
Create
其中update(小时)用于更新消息。
这很好,但是,更新是根据启动时间完成的。例如,消息应在20:00更新。但如果该应用程序在19:59发布,则更新将在20:59进行。
如果我使用Thread t2 = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(3600000);
handler.post(new Runnable() {
@Override
public void run() {
int hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
update(hour);
}
});
}
} catch (InterruptedException e) {
}
}
};
t2.start();
,它就会按预期工作。但我想通过每秒运行一次线程来寻找1小时的事件来浪费资源。有没有更好的方法呢?
答案 0 :(得分:0)
当然,您需要检查当前时间,获取超过一小时的分钟数,然后在下一个小时00到来时从那里开始工作。然后,只需要在那些分钟的睡眠时间,然后是睡眠后整整一个小时的所有时间。
答案 1 :(得分:0)
看看AlarmManager。
警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。