根据时间显示消息

时间:2016-04-16 16:07:13

标签: android multithreading time

我有一个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小时的事件来浪费资源。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:0)

当然,您需要检查当前时间,获取超过一小时的分钟数,然后在下一个小时00到来时从那里开始工作。然后,只需要在那些分钟的睡眠时间,然后是睡眠后整整一个小时的所有时间。

答案 1 :(得分:0)

看看AlarmManager

  

警报管理器适用于您希望在特定时间运行应用程序代码的情况,即使您的应用程序当前未运行。