在我的应用程序中的大多数活动中,都有一个标签--空气流标题。本质上,我需要在一个广播结束和另一个广播开始时更新它,并且我有相应的时间表。我可以只以固定的速率更新数据,比如每分钟更新一次,但我发现它太多了。
我想在特定时刻安排更新;在每次更新之后,我需要安排下一次更新。广播的时间范围是不同的。
AlarmManager可能是一种过度的杀伤力,因为如果应用程序没有运行,我不需要更新任何数据。
附注:时间范围不是固定的,所以我必须在每次更新时改变计划时间。
谢谢。
发布于 2013-02-13 09:28:47
我想说使用Handler.postDelayed
是一个更好的选择,因为你可以改变延迟。使用任何类型的计时器都与“可变长度”的要求相冲突。
发布于 2013-02-13 09:46:07
你可以使用线程来定期更新数据,这个线程会运行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
希望这能对你有所帮助
https://stackoverflow.com/questions/14850144
复制