SQLite将只读数据的表更新到App用户

时间:2016-07-31 10:05:57

标签: android sqlite

我是Android开发的新手,并且在下面有一些问题

(i)在我的应用程序中我使用SQLite数据库,其中用户应该只能读取数据(因此我只运行在应用程序代码中读取数据库查询) db = openOrCreateDatabase(" PersonDB",Context.MODE_PRIVATE,null); db.execSQL(SELECT * FROM persons);

(ii)要向用户显示新数据(例如新闻等),我需要每天更新我的表格,但我不知道该怎么做?

PS:我知道如何让用户使用Android应用程序插入数据的代码,但在这种情况下我只想插入数据(不是应用程序的用户) 有人可以帮我这个吗? 谢谢!提前

1 个答案:

答案 0 :(得分:1)

您可以使用每天运行的定期同步来实施 SyncAdapter 以更新数据库。 https://developer.android.com/training/sync-adapters/creating-sync-adapter.html

此外,如果您可以将支持的Google云消息传递(或较新的FireBase云消息传递)集成到一起,以通知应用在可用时检索新数据 https://developers.google.com/cloud-messaging/android/start

在这两种情况下,您都将从服务器检索数据并在Service内更新数据库,以便即使应用程序未运行也会进行更新。

<强>更新

对于SyncAdapter,数据传输代码可以在 onPerformSync()方法中实现。至于更新数据库,SyncAdapter与ContentProvider配合使用,这使得CRUD操作更容易。

因此,在该方法中,您将从网络获取数据,打开数据库进行写入并插入/更新新数据记录。 SyncAdapter有一个getContext()方法,可用于任何上下文操作。

您还可以检查我实施的这个应用程序,它有一个SyncAdapter和ContentProvider。 https://github.com/MinaSamy/WeatherApp/blob/master/app/src/main/java/com/bloodstone/weather/sync/WeatherSyncAdapter.java