采用Android的代码结构/设计模式有问题

问题描述 投票:0回答:1

我要实现以下目标:

我接收经由FCM通知与数据性质的特定id。我得到的id都当我的应用程序是在前台和后台/关闭......到目前为止,一切顺利。 现在,我要做到以下几点:

  1. 使截击请求到例如/books/id得到相应的书籍信息。
  2. 坚持保存这些信息在Room database
  3. 显示他们在一个RecyclerView

方案1:应用与RecyclerView是在前台: 当我收到通过FCM通知数据的新id,我希望我的RecyclerView追加另一个列表项与新取书的信息。

方案2:应用程序在后台 - 通知被点击: 当通知被点击,与MainActivityRecyclerView被加载,显示新取书的信息。

方案3:应用程序在后台 - 通知被滑开了: 一段时间后,通知被滑开的重新打开或重新启动应用程序的用户。与MainActivity和新取书信息的RecyclerView所示。

我的问题: 我不太知道如何组织我的代码来实现这一目标。我试图使FCM的onMessageReceived()内的凌空请求,但导致的错误,我不知道在哪里,我怎么能做到这一点,否则。我测试了另一个项目的凌空请求,并在那里工作。目前,我尝试学习如何与房间数据库。

我真的很感激,如果有人可以给我如何完成这样的事情的洞察力。我真的需要这个工作不久。

提前致谢! :)


编辑1:我dont't得到错误的onMessageReceived里面了。我收到给定书id正确的响应。 现在我想将这些信息保存到Room database并反映在我的RecyclerView的变化。我想我会用机器人architecture components喜欢这里: android architecture components example

我想这正是我需要的。不过,我还是不太明白如何处理它,并据此构建我的代码。

android design-patterns firebase-cloud-messaging android-room code-structure
1个回答
0
投票

方案1:您可以将它保存在数据库,或只是广播并保存它例如在活动,则显示一个列表。

方案2:你应该保留所有的显示数据DB。在通知时,请单击RecyclerView是在后台后,你应该处理通过意图过滤器的android.intent.category.LAUNCHER的意图,并把一些信息也提出请求并更新列表。

方案3:最后,只是做一个要求,保存数据库,然后显示所有在列表中。这是一个很好的approche,它需要额外的时间,但你总是保持更新。

还可以阅读有关与DiffUtils高效热插拔数据

© www.soinside.com 2019 - 2024. All rights reserved.