2011-12-30 107 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. 
    } 

}