何时以及如何在Android应用程序中将数据保存到数据库
我试图了解从服务器获取数据并将其存储在数据库中,然后在多选项卡android应用程序中以片段形式显示数据的最佳实践 应用程序结构如下:主活动有3个选项卡,每个选项卡分别有从服务器获取的提要、好友和奖励列表。这些需要点击三个不同的端点,并被分页(提要、奖励、好友信息中的每一个都位于大小为5的页面中) 目前在App.onCreate()方法[App extensed Application]中,我正在访问这些端点的第一页,并将其存储在App.appData对象(一个包含ArrayList提要、ArrayList好友、ArrayList奖励的复合对象)中 我应该同时将这些内容保存到数据库中,还是应该在用户暂停应用程序(即,看不到任何活动)并在该回调函数中将app.appData的内容保存到数据库中时进行拦截?否则,我觉得一旦用户浏览并转到下面的页面,从服务器获取数据和写入数据库的周期就会持续很多次 对于此类应用程序体系结构,是否有任何最佳实践/教程何时以及如何在Android应用程序中将数据保存到数据库,android,android-fragments,android-listview,android-sqlite,android-networking,Android,Android Fragments,Android Listview,Android Sqlite,Android Networking,我试图了解从服务器获取数据并将其存储在数据库中,然后在多选项卡android应用程序中以片段形式显示数据的最佳实践 应用程序结构如下:主活动有3个选项卡,每个选项卡分别有从服务器获取的提要、好友和奖励列表。这些需要点击三个不同的端点,并被分页(提要、奖励、好友信息中的每一个都位于大小为5的页面中) 目前在App.onCreate()方法[App extensed Application]中,我正在访问这些端点的第一页,并将其存储在App.appData对象(一个包含ArrayList提要、Arr
+-----+----+---+
| T1 | T2 | T3|
+-----+----+---+ +---------+ +---------+
| F1 | | F2 | | F3 |
| +----------+ | | | | |
| +----------+ | | +-------+ | +----+ |
| | | |-------+ | |----| |
| +---------+ | | |-----| | | |----| |
| +---------+ | | +-----+ | | +----+ |
| | | Friends| | Rewards |
| Feeds | | | | |
+--------------+ +---------+ +---------+
我使用类似架构的应用程序。我们从服务器获取数据,并在数据到达时将其存储在数据库中。我们的UI对象从数据库中获取所需的内容。这种体系结构的好处在于UI从不直接依赖于网络——它总是只显示数据库中可用的内容。但是,有许多重要问题会影响这种体系结构是否适合您:
当新数据可用时,基本片段类也是接收通知的一种方便方法。在onResume中,我们将片段注册为活动片段,在onPause中取消注册它。然后,当网络中有新数据可用时,您只需检查哪些片段处于活动状态,并通知它们。然后,这些片段可以从数据库中提取数据并刷新,就像调用onResume时一样。(仅限我)当数据发生更改时,我会立即在本地保存数据。谢谢,您是如何做到的?从某种意义上说,当网络请求(我正在通过改造)失败时,您是否会自动从DB表中提取数据?是否有一个库可以简化这个过程(基本上类似于缓存)?感谢本地发布和与服务器同步是两件完全不同的事情。不要缓存数据库更改。在本地数据库表中设置isDirty、isDeleted位,并在与服务器成功通信时清除isDirty位和/或执行物理删除。服务器上已更改的数据需要推送到应用程序中,这是非常困难的,因为服务器需要知道设备上已经存在哪些内容,以便有效地向下推送更改。哦,我从未使用过改型或截击,因为我在android中的httpurlconnection没有问题。这正是我正在制作的应用。在3个片段中,有一个片段是提要,每3-4小时就会有新的提要(针对该用户);好友列表可能每天更改一次,奖励列表也可能每天更改一次。我能问一下你用的是什么软件包吗?我正在使用改型,我在想什么是最好的坚持?我想在Application.onCreate()中使用改型(异步任务)发出网络/服务器请求,然后将数据从数据库显示到片段以填充其UI。一旦新数据从服务器上传来,我如何与用户界面重新通信呢。这些问题。我有时喜欢这些问题出现的会议,有时不喜欢。我有时会随波逐流,梦想着简化问题的回答,或者思考如果某个非技术人员在几毫秒内就数据处理给出了答案会怎么样。我提出这个问题是因为这是一个重要的决定。@dowjones123不应该像社交应用程序上弹出的“新故事”按钮一样出现提要。@danny117,是的,只是我们的提要的频率要低得多