Android 定期更新标签

Android 定期更新标签,android,Android,在我的应用程序中的大多数活动上都有一个标签-在空气流标题上。基本上,当一个广播结束,另一个广播开始时,我需要更新它,我有时间表。我可以以固定的速率更新数据,比如说每分钟更新一次,但我觉得这太过分了 我想为特定时刻安排更新;每次更新后,我需要安排下一次更新。广播的时间范围不同 什么最适合这个问题?Handler.postDelayed、ScheduledExecutorService.schedule或其他内容?AlarmManager可能有些过分,因为如果应用程序未运行,我不需要更新任何数据 p

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

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

什么最适合这个问题?Handler.postDelayed、ScheduledExecutorService.schedule或其他内容?AlarmManager可能有些过分,因为如果应用程序未运行,我不需要更新任何数据

p、 美国的时间范围是不固定的,所以每次更新我都要改变计划时间


谢谢。

我想这是最好的选择。与一起使用。

我认为使用
处理程序.postDelayed
是一个更好的选择,因为您可以改变延迟。使用任何类型的计时器都会与“可变长度”的要求相冲突。

您可以使用线程定期更新数据。在此,此线程将运行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();
strinhhello=“HI”;
最终积分时间=2000;//显示启动屏幕的时间(毫秒)
螺纹飞溅踏板=新螺纹(){
@凌驾
公开募捐{
试一试{
int=0;
while(_active&&(waiting<_splashTime)){
睡眠(100);
如果(_活动){
平均值+=100;
}                      
}
} 
捕捉(中断异常e){
} 
最后{
完成();
hello=“HI2”;
停止();
}
}
};
splashTread.start();
在这里,字符串hello将在2秒内从HI变为HI2


希望这能帮助你

并且你最好使用固定周期执行而不是固定速率执行。如果时间范围不固定,那么
处理程序。postDelayed
是更好的选择。处理程序在Android中总是更好的选择,因为计时器没有官方支持(或者更确切地说,不推荐)有Android倒计时程序,这很好,但不是为了这个问题。