I have a managed ProgressDialog that show the status as tasks are
moving along.  The Activity.show is kicked off by an AsyncTask
progressUpdates and the final Activity.closeDialog is called through
the AsyncTask as well.  Everything works beautifully as long as the
screen is not rotated...

What am I doing wrong? I thought having the Activity manage my dialog
would solve this for me... Here is the code I'm playing with:


public class Enter extends Activity {
        ProgressDialog progressDialog;
        private final static int PROGRESS_DIALOG_ID = 1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button = (Button)findViewById(R.id.progressbar_button);

        button.setOnClickListener(new View.OnClickListener(){

                        @SuppressWarnings("unchecked")
                        public void onClick(View v) {

                                Enter.this.showDialog(PROGRESS_DIALOG_ID);
                                new AsyncTask(){

                                        @Override
                                        protected Object 
doInBackground(Object... params) {
                                                progressDialog.setMax(30);
                                                for (int a = 0; a < 30; a++){
                                                        publishProgress(new 
Integer((a+1)));
                                                        try {
                                                                
Thread.sleep(1000);
                                                                Log.d("Enter", 
"Click: " + a);
                                                        } catch 
(InterruptedException e) {
                                                                
e.printStackTrace();
                                                        }
                                                }
                                                return null;
                                        }

                                        @Override
                                        protected void 
onProgressUpdate(Object... values) {
                                                super.onProgressUpdate(values);
                                                Integer progress = 
(Integer)values[0];
                                                
progressDialog.setProgress(progress.intValue());
                                        }

                                        @Override
                                        protected void onPostExecute(Object 
result) {
                                                super.onPostExecute(result);
                                                
Enter.this.dismissDialog(PROGRESS_DIALOG_ID);
                                        }
                                }.execute((Object[]) null);
                        }
        });
    }

    @Override
    protected Dialog onCreateDialog(int id) {
        Dialog dialog = null;
        if (id == PROGRESS_DIALOG_ID){
            progressDialog = new ProgressDialog(this);
 
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            progressDialog.setTitle("Pleae Wait");
            progressDialog.setMessage("Running a long process...");
            progressDialog.setCancelable(true);
            dialog = progressDialog;
        }
        return dialog;
    }

Thanks!

-Aaron

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to