我要实现以下目标:
我通过FCM收到了通知,其中数据属性中有特定的id
。我的应用程序在前台和在后台/关闭时都得到id
。到目前为止,一切都很好。
现在,我要执行以下操作:
/books/id
获取相应的图书信息。Room database
RecyclerView
中显示它们 场景1: 带有RecyclerView的应用位于前台:
通过FCM通知数据收到新的id
后,我希望RecyclerView
附加另一个列表项以及新获取的图书信息。
场景2: 应用程序处于后台-通知被点击:
单击通知后,将加载带有MainActivity
的{{1}},并显示新获取的图书信息。
场景3: 应用程序处于后台-通知被清除:
一段时间后,通知被清除,用户重新打开或重新启动应用程序。显示带有RecyclerView
的{{1}}和新获取的图书信息。
我的问题:
我不太了解如何构建代码来完成此任务。
我尝试在FCM的MainActivity
内发出截击请求,但这导致了一个错误,否则我不知道在哪里以及如何去做。我在另一个项目中测试了排球要求,并在那儿工作了。
目前,我尝试学习如何使用Room数据库。
如果有人能给我关于如何完成类似目标的见解,我将不胜感激。我真的需要尽快解决这个问题。
先谢谢! :)
编辑1:
我再也没有在RecyclerView
内部出现错误了。我收到给定书onMessageReceived()
的正确答复。
现在,我要将这些信息保存到onMessageReceived
中,并在我的id
中反映所做的更改。我想我将像这样使用android Room database
:
android architecture components example
我认为这正是我所需要的。但是,我仍然不太了解如何处理它并相应地构建代码。
答案 0 :(得分:0)
场景1:您可以将其保存在数据库中,或者只是广播并将其保存在“活动”中,然后显示一个列表。
方案2:您应将所有显示数据保留在数据库中。当RecyclerView
处于后台时,单击通知后,您应该处理通过android.intent.category.LAUNCHER
的intent-filter的intent,并在其中放置一些信息以进行请求并更新列表。
场景3:最后,只需提出一个请求,保存在DB中,然后在列表中显示所有内容。这是一个很好的方法,它需要花费额外的时间,但是您始终将其更新。
还请阅读有关DiffUtils的高效热插拔数据