无需打开应用程序即可从Firebase更新应用程序数据

时间:2016-12-12 16:50:45

标签: android firebase firebase-realtime-database

应用程序的listview是否有可能在不打开应用程序的情况下更新Firebase中的数据?

我正在开设一个必须离线工作的餐馆应用程序,因此用户不能打开应用程序来获取新菜单,而是必须自动更新(无论何时用户连接到互联网),即使应用程序不是打开了。有可能实现吗?

2 个答案:

答案 0 :(得分:0)

我认为通过更新MENU更新DATA会让您感到困惑。菜单是一个渲染对象 - 如果您使用列表视图驱动它,当应用程序未运行时,它自然不会更新,因为如果没有显示列表视图,则没有理由绘制listview更新。 / p>

但您绝对可以更新数据,我们会在News Rush中执行此操作,以便用户在离线时访问新数据(如果他们之前在线)。只需确保启用持久性并运行驱动列表视图的相同查询。确保路径/参数相同。持久性将记住该数据,如果用户处于离线状态,则下次启动应用时新菜单仍会正确显示。

答案 1 :(得分:0)

您应该在应用程序之外更新它,但是,您可以启用离线功能,

在Android上启用离线功能

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
  

Firebase应用程序离线运行良好,我们有几个功能要做   经验更好。启用磁盘持久性允许您的应用   即使在应用程序重新启动后仍保持其所有状态。我们提供了几个   用于监控存在和连接状态的工具。

保持数据新鲜:

  

保持数据新鲜

     

Firebase实时数据库同步并存储本地副本   主动听众的数据。另外,你可以保持具体   位置同步。

DatabaseReference scoresRef =
 FirebaseDatabase.getInstance().getReference("scores");
 scoresRef.keepSynced(true);
  

客户端会自动下载   这些位置的数据,即使引用也保持同步   没有活跃的听众。你可以用。来关闭同步   以下代码行。

     

scoresRef.keepSynced(false);默认情况下,之前已同步10MB   数据将被缓存。这对于大多数应用程序来说应该足够如果   缓存超出了其配置的大小Firebase实时数据库   将清除最近最少使用的数据。保留的数据   同步,不会从缓存中清除。

了解更多:

Enabling Offline Capabilities on Android