Syncing a REST service with an android app

痞子三分冷 提交于 2019-12-09 15:45:07

问题


There's a REST service that I use to populate info in my database, that is later used by my app. I've read several threads on the matter, and now have to decide how I want the sync between the REST service and my DB to work.

Think of an app that gets info from google finance APIs about stocks and stores it in a DB, displays the information when the app is launched, and sends notifications when specific events happen in the stock price.

I already implemented the simple option of AsyncTask that is launched when a user manually requests a sync. Now I have to implement the auto-sync and these are the options I found:

  • Create a Service that will do the syncing
  • Use a Sync Adapter / Sync Provider

So I found a lot of advantages to the second option, particularly those explained in this video, but also two major disadvantages:

  • I couldn't find good documentation for android sync (a few third party articles such as these, but no official Google or Android Developers guide)
  • According to this article messing up in a Sync Adapter can cause major issues such as OS crash and reboot.

Most of the info I found is pretty old, so maybe things have changed since, but my App is supposed to work with API level 8 and above, so I would be very thankful for any recommendations and links to valuable documentation.


回答1:


Definitely go with SyncAdapter. Follow instructions here: Why does ContentResolver.requestSync not trigger a sync?.

To do SyncAdapter, you'll also need to make an Account/AccountAuthenticator as well, so your SyncAdapter knows how to login to your service -- Unless it truly is the Google Finance APIs, in which case all you need to do is apply the right permissions in the manifest so that it will use the account settings already on the phone.

You didn't link the article you mentioned that discussed crashes, but I know it, and it's actually talking about Accounts -- Which yes, you do need to be careful with.




回答2:


Checkout https://github.com/sschendel/SyncManagerAndroid-DemoGoogleTasks.

Demonstrates setting up sync of Google Task API data to local SQLite db.



来源:https://stackoverflow.com/questions/16433709/syncing-a-rest-service-with-an-android-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!