我有一项活动。 OnCreate活动将网页的源(html)获取为字符串,并在textview中显示结果(稍微解析一下)。
我希望活动定期重新加载/刷新以始终显示最新信息。
最佳解决方案是什么?
答案 0 :(得分:27)
首先......将更新逻辑与onCreate
方法分开。因此,例如,您可以创建updateHTML()
。
然后,您可以使用Timer
定期更新页面:
public class YourActivity extends Activity {
private Timer autoUpdate;
public void onCreate(Bundle b){
super.onCreate(b);
// whatever you have here
}
@Override
public void onResume() {
super.onResume();
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
updateHTML();
}
});
}
}, 0, 40000); // updates each 40 secs
}
private void updateHTML(){
// your logic here
}
@Override
public void onPause() {
autoUpdate.cancel();
super.onPause();
}
}
请注意,我正在取消onPause
上的更新任务,并且在这种情况下,updateHTML
方法每40秒执行一次(40000毫秒)。另外,请确保导入这两个类:java.util.Timer
和java.util.TimerTask
。