Thank you Jon. Cheers
On 30 October 2012 02:05, Jonathan Pryor <[email protected]> wrote: > That approach sounds good to our docs team. > > - Jon > > On Oct 29, 2012, at 2:43 PM, Goncalo Oliveira <[email protected]> wrote: > > > Hi all, > > > > I'm having this dilemma on Activity/Service "binding" that I don't quite > know what is the best way to achieve. > > Here's a common scenario... > > > > We have an activity named LoginActivity. This activity has two fields, > username and password. > > The authentication operation consists in making a web request, and > processing the result. Visually, we want to display a nice progress bar > while we wait. > > > > That's it. Pretty common. > > Obviously, we want to consider things like the activity getting paused > or the screen orientation changing. > > > > After reading the docs and going through a few forums, I came up with a > solution. > > > > First, the dialog issue. If the screen orientation changes, the view is > destroyed and recreated, so the dialog just disappears (and worse, it's > lost in space - leaks). > > What I did was to keep a reference to the progress dialog shown. I > retain a flag stating that the progress dialog is visible by overriding the > OnRetainNonConfigurationInstance. I also make sure I dismiss the dialog > when the activity gets trashed (destroyed). When the new view gets created, > I recover the flag and show a new progress dialog. This works well. > > There were other methods, like configChanges, but I didn't want to > handle the view resources myself, so this seemed like a good and clean > approach. > > > > Now for the operation, I created a service to handle it. More > specifically an IntentService. The request is done in background, and when > done, I send a broadcast with the result. Because the activity might pause > (or trashed), I send a sticky intent broadcast, to make sure it reaches its > destination. When received, I clear up the sticky intent. > > > > This works quite well... > > Though I was happy with the result, I questioned if this was the best > approach. Some defend that using sticky intents is evil, even though I do a > very assertive use. Some say that service binding is a better approach, > though I don't know if it can be used with an IntentService and it seems > like an awful lot of trouble for such a simple task (maybe I'm just not > looking correctly). > > > > So, any thoughts on this approach and on best practices for > accomplishing this are greatly appreciated. > > Cheers. > > > > > > -- > > Gonçalo Oliveira > > _______________________________________________ > > Monodroid mailing list > > [email protected] > > > > UNSUBSCRIBE INFORMATION: > > http://lists.ximian.com/mailman/listinfo/monodroid > > _______________________________________________ > Monodroid mailing list > [email protected] > > UNSUBSCRIBE INFORMATION: > http://lists.ximian.com/mailman/listinfo/monodroid > -- Gonçalo Oliveira
_______________________________________________ Monodroid mailing list [email protected] UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid
