Firebase 侦听器或下拉刷新
Posted
技术标签:
【中文标题】Firebase 侦听器或下拉刷新【英文标题】:Firebase Listener or Pull-To-Refresh 【发布时间】:2019-02-27 09:20:30 【问题描述】:我正在开发一个向用户显示一些信息的应用程序。此信息每天更改多次(有时每小时更改多次)。
我正在使用 Firebase 并为此信息设置侦听器。
-
假设这些侦听器将始终工作是否可靠?
如果应用未关闭(因此组件永远不会卸载),监听器是否会过期/关闭?
实施拉动刷新是一种更可靠的信息更新方式。
我担心的情况是某个侦听器发生了一些事情,而用户可以更新应用的唯一方法是关闭它并重新启动以触发新的侦听器。
【问题讨论】:
【参考方案1】:-
一旦应用关闭,监听器将无法工作
不,如果系统有足够的电池或应用程序没有被系统关闭,它会一直监听。 [当应用程序保持在后台时,应用程序会被 android 系统禁用以节省电池,当用户到达时它会重新启动]
这取决于应用程序的类型。如果应用程序是一些股票或聊天类的东西,那么数据必须实时流式传输,而如果应用程序显示其他用户的一些帖子,比如在 twitter 用户配置文件中,那么拉刷新就可以了
建议:您还应该创建一个重试功能来检查侦听器的状态,如果它发生然后重试 [在网络中断时很有帮助] 此外,您还应该为用户提供一种刷新机制,因为它可以改善用户体验 ;)
【讨论】:
【参考方案2】:在得到答案之前,您必须了解 react 组件的生命周期,listener will always be a part of some component and listener will be initialized when some component is initialized into the memory
和侦听器的生命周期取决于该组件,一旦该组件从内存中卸载,特定侦听器将不会被调用,所以现在您的答案第一个问题是。
-
即使应用程序未关闭并且您正在不同屏幕之间导航,并且您将侦听器放在某个子组件中
and that component is unmounted from the memory your listener will not work
。
现在来到第二个问题,我的第一个答案几乎已经回答了。
正如我在第一个答案中所说,直到从内存中卸载该组件之前,除非您关闭应用程序或操作系统由于某种原因杀死应用程序,否则侦听器将工作but as long as the component keeps mounted into the memory your listener will keep working
。
我相信在您的情况下添加拉动刷新更方便另一种选择是您可以混合使用您的导航库的更改侦听器和焦点侦听器When the user focuses on some screen then you can fetch newer data
,这样将始终显示新数据instead of manual refresh
.
【讨论】:
以上是关于Firebase 侦听器或下拉刷新的主要内容,如果未能解决你的问题,请参考以下文章
android pulltorefresh是怎么触发下拉刷新的
android 下拉刷新框架PullToRefreshScrollView(com.handmark.pulltorefresh)