问题
In my activity, I call a MyDialog (custom dialog) in onCreate() and handle its DismissListener in Activity to find if its cancelled or not. If its cancelled, I finish the activity, else load the activty. During this loading time, I want to show a Alert/Progress dialog to let the user know that its loading, please wait. But am not able to see the dialog. This is how I have coded :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ld = new AgreeDialog(this);
ld.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (ld.isCancelled)
MyActivity.this.finish();
else {
//ProgressDialog pd = CreateLoadingDialog();
//pd.show();
//Log.i(TAG, "Before Load Is PD showing - " + pd.isShowing()); // Shows true
/*
AlertDialog.Builder adb = new AlertDialog.Builder(StartUltimate.this);
adb.setTitle("Loading...");
adb.setCancelable(false);
AlertDialog ad = adb.create();
ad.show();
*/
MyActivity.this.showDialog(0);
LoadAfteAgree(); // This takes time sonetimes, so want a dialog while this is working
MyActivity.this.removeDialog(0);
//ad.dismiss();
// pd.dismiss();
//Log.i(TAG, "After Load Is PD showing - " + ad.isShowing()); // Shows false
}
}
});
@Override
protected Dialog onCreateDialog(int id) {
switch(id) {
case 0:
loadingDlg = new ProgressDialog(this);
loadingDlg.setMessage("Loading...");
loadingDlg.setCancelable(false);
loadingDlg.setIcon(R.drawable.icon);
return loadingDlg;
}
return null;
}
Why am I not able to see any dialog in any way ? I tried calling them in LoadAfterAgree() also, but there also no success, same results.
Any help is highly appreciated.
Thanks
回答1:
you're performing your long operations in UI thread. Move them to the AsyncTask's doInBackground method. See the example here.
回答2:
To stop your dialog causing any memory leaks, ensure the following is included in your activity;
AlertDialog _alert;
@Override
public void onPause() {
super.onPause();
if(_alert != null)
_alert.dismiss();
}
来源:https://stackoverflow.com/questions/5755980/want-to-display-alertdialog-in-oncreate-of-activity-android