我想显示进度对话框“装载”,而我的应用程序打开。应用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