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

Reply via email to