在我的应用程序中,我有一个填充列表视图的功能。我想每 5 分钟定期运行一次此功能。我为此使用了以下方法。
private class RefreshThread extends Thread{
public boolean isStop = false;
public void run(){
try{
while(!isStop){
Headlines.this.runOnUiThread(new Runnable() {
public void run() {
populate_listview(); //Function to populate listview
}
});
try{ Thread.sleep(300000); } catch(Exception ex){}
}
}catch(Exception e){
}
}
}
当我使用此方法时,该函数在前台运行,因此整个应用程序都受此影响。我想在后台运行此函数,以便列表视图更新,而用户永远不知道该函数正在运行。
以下是填充列表视图的功能。
public void populate_listview()
{
ArrayList<HashMap<String, String>> newsList = new ArrayList<HashMap<String, String>>();
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(URL); // getting XML from URL
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nl = doc.getElementsByTagName(KEY_HEAD);
// looping through all song nodes <song>
NodeList itemLst = doc.getElementsByTagName("item");
String MarqueeStr="";
for (int i = 0; i < nl.getLength(); i++) {
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
//map.put(KEY_DATE, parser.getValue(e, KEY_DATE));
newsList.add(map);
}