我在我的活動中有以下內容,用於在他們的LoveFilm隊列中下載用戶電影,但ProgressDialog從不出現。ProgressDialog不出現
public class MyListActivity extends Activity {
SharedPreferences prefs;
ProgressDialog m_progressDialog;
Thread listThread;
User user;
private Runnable threadProc_initializeQueue = new Runnable() {
public void run() {
user.fetchQueues();
Queue defaultQueue = user.getDefaultQueue();
defaultQueue.fetchTitles();
m_progressDialog.dismiss();
}
};
/* (non-Javadoc)
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
prefs = getSharedPreferences(getString(R.string.app_name), MODE_PRIVATE);
// Authenticate the user if needs be.
if(!prefs.getBoolean("isAuthenticated", false)) {
Intent i = new Intent(this, OAuthActivity.class);
startActivity(i);
finish();
} else {
// Get the users default list.
LoveDroid app = (LoveDroid) getApplication();
user = new User(app);
m_progressDialog = ProgressDialog.show(MyListActivity.this, "Please Wait", "Loading", true);
listThread = new Thread(null, threadProc_initializeQueue);
listThread.run();
}
}
我見過別人這個問題,他們基本上都避開推薦一行看起來像我
m_progressDialog = ProgressDialog.show(MyListActivity.this, "Please Wait", "Loading", true);
代碼的其餘產品,用戶薄膜通過下載線程,但對話框永遠不會顯示出來,它也需要幾秒鐘的時間,這並不像對話框在有時間出現之前就被解散了。
我將不得不看看AsyncTask類 - 我從來沒有用過它,它看起來非常有幫助。通過進度對話框,dismiss()調用實際上可以從任何線程調用,但其餘的方法需要從UI線程調用。 – 2010-08-15 01:16:30
你在Amitlicht的位置,我用一個AsyncTask&eveything替換了Thread,因爲它非常適合,非常感謝。 – 2010-08-15 12:53:59
但是然後對話框對象是preExecute方法的本地? – 2012-07-13 10:06:56