我在我的活动中有以下内容,用于在他们的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