我是Android开发的新手,并且在下面有一些问题
(i)在我的应用程序中我使用SQLite数据库,其中用户应该只能读取数据(因此我只运行在应用程序代码中读取数据库查询) db = openOrCreateDatabase(" PersonDB",Context.MODE_PRIVATE,null); db.execSQL(SELECT * FROM persons);
(ii)要向用户显示新数据(例如新闻等),我需要每天更新我的表格,但我不知道该怎么做?
PS:我知道如何让用户使用Android应用程序插入数据的代码,但在这种情况下我只想插入数据(不是应用程序的用户) 有人可以帮我这个吗? 谢谢!提前
答案 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