Difference between revisions of "Progress Dialog and Threads"

From John Freier
Jump to: navigation, search
Line 1: Line 1:
 
These are nice to use when you need to create a "waiting..." dialog.  For example when you make a call to the internet, you would use one, so the user does not have to wait.
 
These are nice to use when you need to create a "waiting..." dialog.  For example when you make a call to the internet, you would use one, so the user does not have to wait.
  
One of the issues I ran across was accessing class variables.  After alot of research, I figured out, that you can access variable through a class Handler.
+
One of the issues I ran across was accessing class variables.  After a lot of research, I figured out, that you can access variable through a class Handler.  You pass variable to the handler through the messages.
  
 +
Example:
 +
 +
Create a private class variable.
 
  private ProgressDialog dialog;
 
  private ProgressDialog dialog;
  
 +
This is the handler so that you can access class variables.
 
  private Handler handlerRefresh = new Handler()
 
  private Handler handlerRefresh = new Handler()
 
  {
 
  {
Line 15: Line 19:
 
  }
 
  }
  
 +
This is the thread creation, it will show the dialog and process in the background.
 
  dialog = ProgressDialog.show(CurrentActivity.this, "","Please wait...", true);
 
  dialog = ProgressDialog.show(CurrentActivity.this, "","Please wait...", true);
 
  new Thread(new Runnable()
 
  new Thread(new Runnable()

Revision as of 10:15, 27 January 2011

These are nice to use when you need to create a "waiting..." dialog. For example when you make a call to the internet, you would use one, so the user does not have to wait.

One of the issues I ran across was accessing class variables. After a lot of research, I figured out, that you can access variable through a class Handler. You pass variable to the handler through the messages.

Example:

Create a private class variable.

private ProgressDialog dialog;

This is the handler so that you can access class variables.

private Handler handlerRefresh = new Handler()
{
     @Override
     public void handleMessage(Message msg)
     {
          Bundle resBundle = (Bundle) msg.obj;
          String question = resBundle.getString("key");
     }
}

This is the thread creation, it will show the dialog and process in the background.

dialog = ProgressDialog.show(CurrentActivity.this, "","Please wait...", true);
new Thread(new Runnable()
{
     public void run()
     {
          // Threaded process...
          String name = "John";

          Message myMessage=new Message();
          Bundle resBundle = new Bundle();
          resBundle.putString("key", name);
          myMessage.obj=resBundle;
          handlerRefresh.sendMessage(myMessage);
          dialog.dismiss();
     }
}).start();