在我的应用程序中的大多数活动中都有一个标签 - 关于气流标题。基本上,我需要在广播结束时再更新它,而另一个广播开始,我有时间表。我可以以固定的速率更新数据,比如说每分钟一次,但我觉得它太过分了。
我想安排特定时刻的更新;每次更新后我都需要安排下一次更新。广播的时间范围不同。
这个问题的最佳选择是什么? Handler.postDelayed,ScheduledExecutorService.schedule还是其他什么?如果应用程序没有运行,我不需要更新任何数据,因此AlarmManager可能是一种过度杀伤。
P.S。时间范围不固定,因此我必须在每次更新时更改计划时间。
感谢。
答案 0 :(得分:2)
我想说使用Handler.postDelayed
是一个更好的选择,因为你可以改变延迟。使用任何类型的计时器都与“变长”要求相冲突。
答案 1 :(得分:0)
答案 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
希望这有助于你