Arc Arc - 9 months ago 52
Android Question

run the SyncAdapter in the background when the application is not running

Is it possible to run the SyncAdapter in the background even when the application is not running? I want to update the sqlite database if there is any changes in the server , even when android application is not running?

Answer Source

Probably the best practice for this use-case is:

1) Fire a Broadcast from your server, whenever the data changes.

2) Start a service from the broadcast receiver. (you can send some extra data with your broadcast to distinguish between broadcast operations).

3) Update your database in your started service.

If the above solution is not an option, then:

I would recommend you to use JobScheduler which is a newer and recommended approach for such use-cases.

Although, you can also achieve your goal using SyncAdapters. But nowadays, they are usually used when you need to maintain accounts or share AuthTokens between other apps or store some SyncAdapter specific data in your ContentProviders.