I do need the downloads to continue when the application switches activities, which is why I am using a service in the first place. It sounds like registering a listener is the way to go. Thank you so much for the help!
On Feb 7, 10:34 pm, TreKing <[email protected]> wrote: > On Mon, Feb 7, 2011 at 9:24 PM, Avtar Khalsa <[email protected]> wrote: > > Thanks for the reply again. It was quite helpful. I am actually downloading > > small audio files for an answering machine app. If the activity that > > launched the service is still running, I would like it to update to include > > the newly downloaded files in the UI for the user to listen to. If the user > > has moved to a different activity, I just want the service to save the file > > to persistent storage. (It will store to persistent storage either way, but > > if the activity is running the UI should update) A service seems appropriate > > here although I am certainly open to other options? > > I guess it depends on the flow and user workflow of your app. If you start > your app, it begins downloading, updates the UI as things becomes available, > and then shuts down and stops the downloading when the user exist the > Activity, then I would suggest an AsyncTask. > > If the user expects the downloads to continue and somehow play or be > notified as they become available, then yeah, a Service seems more > appropriate. > > Ultimately, either way will work. > > > The issue I am having specifically is notifying the activity that the > > download is complete. I would really rather avoid having the activity poll > > the service to find out if the download is completed > > You've seen how most of the UI in Android works? Nearly everything registers > a "Listener" object when it wants to know something happens. Create your own > listener class like "ServiceListener" or something. Your service takes a > reference and hold on to it. When a download is complete, it invokes the > listener's onDownloadComplete() method (or whatever you want to call it). > > Meanwhile the Activity is the one that creates an instance of a custom > listener and passes it to the service. When the service call it's method, it > responds appropriately (updating the UI). > > You could also send a Broadcast that the Activity would register for, which > would set you up for more advance functionality like background downloading > and responding to downloading completing without needing your activity to be > alive and waiting for the listener to get triggered. Just an idea though, > the former option is much easier and should suit your current problem just > fine. > > --------------------------------------------------------------------------- > ---------------------- > TreKing <http://sites.google.com/site/rezmobileapps/treking> - Chicago > transit tracking app for Android-powered devices -- 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

