Michael-

An interesting approach indeed. Sounds a little hacky, though...
Especially if the docs vaguely advise against it as you mention. A
clever hack, though :)

-Nick



On Apr 17, 11:25 pm, Michael Elsdörfer <[email protected]> wrote:
> Depending on your specific needs, a service might make sense, but for
> simple cases, it's not strictly necessary. You can instead use
> Activity.onRetainNonConfigurationInstance(), which allows you to pass
> live Java objects to the new Activity instance - i.e., for example an
> AsyncTask object. Just make sure you don't create leaks by keeping
> references to old instances of your Activity around.
>
> I've been using a custom ASyncTask child class for a while that allows
> me to "connect" to the task from a new activity instance, and have the
> proper callbacks be executed even if the tasked finished in-between
> activities being available:
>
> http://github.com/miracle2k/android-autostarts/blob/master/src/com/el...
>
> Note that while the docs say that onRetainNonConfigurationInstance is
> only for "optimization", it's not quite clear what that the official
> contract is. Yes, it's possible that your activity needs to restore
> itself without onRetainNonConfigurationInstance(). For example, if the
> user leaves your application via HOME and then goes into the Settings
> and changes the device language, your activity will be stopped and
> restarted, presumably without onRetainNonConfigurationInstance() being
> called.
>
> However, it might be ok if in those cases your api request will indeed
> need start again fresh, depending on it's duration, and maybe whether
> it changes state on the server. But for your run of the mill
> orientation change, onRetainNonConfigurationInstance() is apparently
> being reliable called, and it has been suggested on this list a number
> of times that it is intended to be used for objects that can't be
> stored in a bundle, like for example sockets.
>
> Michael
>
> --
> 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 
> athttp://groups.google.com/group/android-developers?hl=en

-- 
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