我想顯示進度對話框「裝載」,而我的應用程序打開。應用Progressdialog啓動時不工作
我試過的AsyncTask和其他一些方法(Uithread,線程)來做到這一點,所有的都失敗了。
我不知道爲什麼,但progressdialog沒有顯示在我的手機屏幕上。我總是看到一個黑屏。
getApnData拋出異常後,我的活動UI組件顯示,進度對話框的作品,但爲時已晚
下面是一些我的代碼部分。
//1-1-1-1-1
//On create or OnStart
LoginProgressTask task1 = new LoginProgressTask();
task1.execute();
//Inner class
class LoginProgressTask extends AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
try {
getApnData(); // Do your real work here
} catch (Exception e) {
e.printStackTrace();
}
return Boolean.TRUE; // Return your real result here
}
@Override
protected void onPreExecute() {
super.onPreExecute();
LoginUI.this.pd = ProgressDialog.show(LoginUI.this, "", "Loading...", true, true);
}
@Override
protected void onPostExecute(Boolean result) {
// LoginUI.this.pd.dismiss();
}
}
//2-2-2-2-2
//OnCreate or OnStart
pd = ProgressDialog.show(this, "", "Loading...", true, false);
thread = new Thread(this);
thread.start();
//run
@Override
public void run() {
try {
firstRunUI();
handler.sendEmptyMessage(0);
} catch (Exception e) {
e.printStackTrace();
}
}
//UIRun
public void firstRunUI() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try {
getApnData();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
//Handler
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
pd.dismiss();
}
};
不爲工作,幫助我的一些朋友。他是Android開發新手。我曾嘗試過這種方法,他們工作正常。 – Tugrul 2013-05-07 13:50:05
@tgrll這將爲你做這份工作!並不意味着你實際工作的工作,但它是做代碼的工作或工作的首字母縮略詞!也就是說,請不要誤會,如果解決方案有效,給我們一個反饋意見 – 2013-05-07 13:54:09
對不起,錯誤理解。 Yeap它正在工作,我的代碼現在正在工作。我以前在我的項目中嘗試過這種方法,並且它們工作正常。 但不是在這個項目中。這聽起來很奇怪。他的代碼不復雜。例如,在getApnData()中,他到達UI元素並更改其中的一些元素。 setText,setEnabled等。 我修復了部分代碼和進度對話框,現在顯示。 但在一段時間內,它正在旋轉,之後它鎖定。 仍然需要幫助。 – Tugrul 2013-05-07 13:58:05