Hello,
>From the conversation above, i understand that having a static reference to
the activity can be used by background threads (that we may spawn), to send
callbacks to the activity (which can then render stuff on the UI).

However, It would be helpful, if someone can also provide an example of
using Handlers.

For my understanding so far, I am posting some pseudo code below. Please
feel free to correct me/enhance the code, so that i may understand this
concept better.

I can create a static handler reference in my activity class like this:

private static MyHandler handler = new MyHandler();

My handler class may have the following structure (assuming that MyHandler
is an inner class of my Activity class):

public class MyHandler extends Handler
{
   public void processCallConnectedEvent ( Message m)
    {
       // do stuff here..show a dialog that displays "Call Connected" on the
Activity's UI
      //sleep here for sometime, say 2 seconds..
     // dismiss the dialog.
    }

   public void processCallDisconectedEvent (Message m)
    {
       // Do the needful here, pop a dialog that displays "Call
Disconnected"
    }

   public void processCallTimedOutEvent (Message m)
    {
       // Do the needful here, pop a dialog that displays "Call Attempt
timed out"
    }

}

On Tue, Sep 1, 2009 at 10:27 PM, Streets Of Boston
<flyingdutc...@gmail.com>wrote:

>
> You're welcome :-)
>
> And you can make your show/dismissDialogSmart 'static'. Then you never
> need a reference to an Activity at all. Just call
> OrientationAwareActivity.showDialogSmart(id)
>
>
> On Aug 31, 5:44 pm, CraigsRace <craig...@gmail.com> wrote:
> > > I deal with these situations by just keeping a public static reference
> > > around to the currently active activity. E.g.
> >
> > Brilliant idea!!!  That's the solution!
> >
> > And you could abstract it out into a sub class like this (I wish
> > showDialog/dismissDialog weren't marked as final!):
> >
> > public class OrientationAwareActivity extends Activity {
> >         private static OrientationAwareActivity ACTIVE_INSTANCE;
> >
> >         @Override
> >         protected void onCreate(Bundle savedInstanceState) {
> >                 super.onCreate(savedInstanceState);
> >
> >                 ACTIVE_INSTANCE = this;
> >         }
> >
> >         @Override
> >         protected void onDestroy() {
> >                 super.onDestroy();
> >
> >                 ACTIVE_INSTANCE = null;
> >         }
> >
> >         public void showDialogSmart(int id) {
> >                 if (ACTIVE_INSTANCE != null) {
> >                         ACTIVE_INSTANCE.showDialog(id);
> >                 }
> >         }
> >
> >         public void dismissDialogSmart(int id) {
> >                 if (ACTIVE_INSTANCE != null) {
> >                         ACTIVE_INSTANCE.dismissDialog(id);
> >                 }
> >         }
> >
> >
> >
> > }- Hide quoted text -
> >
> > - Show quoted text -
> >
>

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

Reply via email to