Boomerang
Boomerang

Reputation: 167

Getting data from server regularly even when the app is closed

I want to get data from the server and store it in a cache regularly, even when the app is closed. I am not sure what is the correct way to do it. I have listed down the possible ways I can think of. Please let me know the correct or the best way to do it. Really appreciate any help.

  1. Create an Activity and set a repeated alarm to call a service. The service should connect to the server and download the data in cache.

  2. From a fragment, check the last time the cache was updated and then if the data is out-dated, connect to server in a background thread and update the cache.

Upvotes: 0

Views: 1739

Answers (2)

Rajan Kali
Rajan Kali

Reputation: 12953

You can Directly Use IntentService for Frequently Updating Data

IntentService is a subclass of android.app.Service class. A stated intent service allows to handle long running tasks without effecting the application UI thread. This is not bound to any activity so, it is not getting effected for any change in activity lifecycle. Once IntentService is started, it handles each Intent using a worker thread and stops itself when it runs out of work.

IntentService would be an best solution, If you have an work queue to process. For example, if your application using analytics you will likely to send event name and related parameter to your tracking server for each user generated event. Although each event means a tiny piece of data, creating networking request on each click will result an overhead to your application

For implementation : Updating Data from Server Using Intent Serive

Upvotes: 2

vab
vab

Reputation: 723

Do take a look at Android Sync Adapter Framework.

https://developer.android.com/training/sync-adapters/index.html

Hope this helps.

Upvotes: 0

Related Questions