定期更新标签

时间:2013-02-13 09:22:07

标签: android

在我的应用程序中的大多数活动中都有一个标签 - 关于气流标题。基本上,我需要在广播结束时再更新它,而另一个广播开始,我有时间表。我可以以固定的速率更新数据,比如说每分钟一次,但我觉得它太过分了。

我想安排特定时刻的更新;每次更新后我都需要安排下一次更新。广播的时间范围不同。

这个问题的最佳选择是什么? Handler.postDelayed,ScheduledExecutorService.schedule还是其他什么?如果应用程序没有运行,我不需要更新任何数据,因此AlarmManager可能是一种过度杀伤。

P.S。时间范围不固定,因此我必须在每次更新时更改计划时间。

感谢。

3 个答案:

答案 0 :(得分:2)

我想说使用Handler.postDelayed是一个更好的选择,因为你可以改变延迟。使用任何类型的计时器都与“变长”要求相冲突。

答案 1 :(得分:0)

嗯,我猜Timer是这种情况下的最佳选择。与TimerTask一起使用。

答案 2 :(得分:0)

您可以使用线程定期更新数据,此线程将运行2秒,通过在循环内调用此函数,您可以定期更新内容

Strinh hello="HI";
    final int _splashTime = 2000; // time to display the splash screen in ms

    Thread splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;
                while(_active && (waited < _splashTime)) {
                    sleep(100);
                    if(_active) {
                        waited += 100;
                    }                      
                }

            } 
            catch(InterruptedException e) {
            } 
            finally {
                finish();
               hello="HI2";
                stop();
            }
        }
    };
    splashTread.start();

此处字符串hello将在2秒内从HI变为HI2

希望这有助于你