Search This Blog

23 April 2010

Progress Bar

Again building off any of our previous examples; this time we are going to do a progress dialog...

Open MyActivity.java and replace the onCreate method:

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

        final ProgressDialog dialog = new ProgressDialog(MyActivity.this);
        dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
        dialog.setMessage("Downloading 200gb...");
        dialog.setCancelable(true);
        dialog.setMax(200);
        dialog.setProgress(0);
        dialog.show();

        Thread t = new Thread(new Runnable(){
            public void run() {
                while(dialog.getProgress() < dialog.getMax())
                {
                    dialog.incrementProgressBy(1);
                    try{Thread.sleep(50);}catch(Exception e){/* no-op */}
                }
                dialog.dismiss();
            }
        });
        t.start();
    }

Redeploy (mvn clean install) and launch.

3 comments:

  1. Question: if i cancel the dialog the thread still running on the background..... nice sample

    ReplyDelete
  2. That's a good point. You could use setOnCancelListener to set a boolean die flag... add that to the while condition...?

    ReplyDelete
  3. This comment has been removed by a blog administrator.

    ReplyDelete