To be safe, you could set a flag to say it has been dismissed that you check when creating the next activity. Generally we call onCreate() immediately after onDestroy() when switching orientations, but this is a good point that there may be another message dispatch between them in some cases so to be correct you need to deal with that.
On Wed, Jan 21, 2009 at 7:24 AM, sp <spapa...@gmail.com> wrote: > > Great, exactly what I was looking for! > > However, at first blush, I see a potential race condition if the > thread finishes and sends its message after onDestroy() but before > onCreate() -- then the managed dialog will never be dismissed. Am I > wrong? > > Spiros > > On Dec 16 2008, 12:21 pm, "Dianne Hackborn" <hack...@android.com> > wrote: > > You can't call .dismiss() after onDestroy() of an activity. In the case > of > > an orientation switch, the previous activity will be destroyed and a new > > instance created; after the previous instance is destroyed, its window > and > > all windows it created are removed from the window manager, and the next > > instance will need to take care of re-adding them. > > > > If you are using managed dialogs, most of the work to deal with this > should > > be done for you, you just need to make sure that you don't do anything > with > > an old dialog after the onDestroy() call. The easiest way to do this is > > probably to have the main thread handle all of the dialogs, create a > Handler > > on that thread that is NOT an inner class of the Activity, but just has a > > pointer to the current Activity, and clear that pointer in onDestroy() > and > > set in in onCreate(). Now when another thread wants to dismiss the > dialog, > > it can send a message requesting this from the handler, and the handler > > simply grabs the Activity pointer and if non-null, gets the Dialog > pointer > > from it and dismisses it if there is one. > > > > > > > > On Mon, Dec 15, 2008 at 8:44 AM, Al Sutton <a...@funkyandroid.com> > wrote: > > > > > A code snippet which prevents an "java.lang.IllegalArgumentException: > > > View not attached to window manager" being thrown when .dismiss() is > > > called on a progress dialogue box which is on screen when the device > > > changes orientation. > > > > > Thanks, > > > > > Al. > > > > > -- > > > ====== > > > Funky Android Limited is registered in England & Wales with the > > > company number 6741909. The registered head office is Kemp House, > > > 152-160 City Road, London, EC1V 2NX, UK. > > > > > The views expressed in this email are those of the author and not > > > necessarily those of Funky Android Limited, it's associates, or it's > > > subsidiaries. > > > > -- > > Dianne Hackborn > > Android framework engineer > > hack...@android.com > > > > Note: please don't send private questions to me, as I don't have time to > > provide private support. All such questions should be posted on public > > forums, where I and others can see and answer them. > > > > -- Dianne Hackborn Android framework engineer hack...@android.com Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---