2010-09-13 230 views
6

我有一项活动。 OnCreate活动将网页的源代码(html)转换为字符串,并在文本视图中显示结果(解析后的结果)。定期刷新/重新加载活动

我想定期重新加载/刷新以始终显示最新信息。

这是最好的解决方案是什么?

+0

我有一个后续问题。我改变了我的应用程序有2个选项卡。每个标签开始自己的活动。第一个选项卡使用上述活动。在我将定期更新添加到该选项卡/活动之后,当我尝试切换到其他选项卡时,会有相当大的延迟。通过使用每个标签中的视图来解决这个问题会更好吗?在那种情况下,我该如何制作,以便定期更新标签/视图中的一个? – Raffe 2010-09-14 07:27:22

+0

嗨,我卡住了相同的问题,如果下面的答案是解决你的问题,那么你可以提供代码。我经历了代码,但似乎出了问题..它是太紧急thnx的任何帮助.. :) :)你可以发邮件给我[email protected] – Sumant 2011-03-22 10:31:36

回答

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(); 
} 
} 

注意到,我取消对更新任务,以及执行每个40 updateHTML方法秒(40000毫秒)。此外,请确保您导入这两个类别:java.util.Timerjava.util.TimerTask

+0

完美,非常感谢。 – Raffe 2010-09-13 14:20:01

+0

我有一个后续问题。我改变了我的应用程序有2个选项卡。每个标签开始自己的活动。第一个选项卡使用上述活动。在我将定期更新添加到该选项卡/活动之后,当我尝试切换到其他选项卡时,会有相当大的延迟。通过使用每个标签中的视图来解决这个问题会更好吗?在那种情况下,我该如何制作,以便定期更新标签/视图中的一个? – Raffe 2010-09-14 07:31:13