2011-12-30 91 views
0

因为如果我开始一个活动,并且在方法onResume中启动线程,Activity的UI仅在线程结束时才显示?Android线程和用户界面

@Override 

protected void onResume() { 

    super.onResume(); 

    processDocuments(); 

} 


private void processDocuments(){ 
    parser = new Parser(rssDocument.getDocument(),rssDocument.getFeedRSS(), listener); 
    Thread processThread = new Thread(parser); 
    processThread.start(); 
} 
+0

这听起来并不正确运行在后台线程。显示一些复制这种奇怪行为的代码。 – Jens 2011-12-30 13:30:11

+0

@Jens Code added – 2011-12-30 13:38:40

+2

您是在UI线程中,在getFeedRSS()还是在Parser()构造函数中下载的?将这些东西移动到后台线程。并使用AsyncTask,而不是线程。 – 2011-12-30 13:41:44

回答

-1

你需要使用AsyncTask

private class getRSSS extends AsyncTask<Void, Void, Void> { 

@Override 
    protected String doInBackground(void... args) { 
    parser = new Parser(rssDocument.getDocument(),rssDocument.getFeedRSS(), listener); 
    Thread processThread = new Thread(parser); 
    processThread.start(); 

} 
@Override 
    protected void onPostExecute(String result) { 
     //Set a toast to say finished. You are allowed to update the UI here. 
    } 

}