我有一项活动。 OnCreate活动将网页的源代码(html)转换为字符串,并在文本视图中显示结果(解析后的结果)。定期刷新/重新加载活动
我想定期重新加载/刷新以始终显示最新信息。
这是最好的解决方案是什么?
我有一项活动。 OnCreate活动将网页的源代码(html)转换为字符串,并在文本视图中显示结果(解析后的结果)。定期刷新/重新加载活动
我想定期重新加载/刷新以始终显示最新信息。
这是最好的解决方案是什么?
首先...将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();
}
}
注意到,我取消对更新任务,以及执行每个40 updateHTML
方法秒(40000毫秒)。此外,请确保您导入这两个类别:java.util.Timer
和java.util.TimerTask
。
我有一个后续问题。我改变了我的应用程序有2个选项卡。每个标签开始自己的活动。第一个选项卡使用上述活动。在我将定期更新添加到该选项卡/活动之后,当我尝试切换到其他选项卡时,会有相当大的延迟。通过使用每个标签中的视图来解决这个问题会更好吗?在那种情况下,我该如何制作,以便定期更新标签/视图中的一个? – Raffe 2010-09-14 07:27:22
嗨,我卡住了相同的问题,如果下面的答案是解决你的问题,那么你可以提供代码。我经历了代码,但似乎出了问题..它是太紧急thnx的任何帮助.. :) :)你可以发邮件给我[email protected] – Sumant 2011-03-22 10:31:36