java - 如何保持 FirebaseDatabase 连接始终在线?至少几个小时
问题描述
有人可以帮助我保持 Firebase 数据库连接始终在线吗?我一直在做一个类似于 UBER 应用程序的项目。我只想让客户即使在驱动程序的应用程序在后台运行时也能看到驱动程序。为此,我必须保持 Firebase 数据库和驱动程序应用程序的连接,即 FirebaseDatabase.getInstance().goOnline()。总是 !!至少几个小时。这个故事就像有两个应用程序,我们可以在地图片段上看到彼此的位置,我只想这样做,如果第一个应用程序在后台工作,即使这样第二个应用程序也应该能够看到位置(第一个标记) 第一个。就我而言,它只持续几分钟。我进行了很多研究,并且了解了在后台工作的服务,但我怀疑这些服务如何使我的应用程序活动连接到 FirebaseDatabase。是不是,如果服务正在工作并与数据库连接,那么我的应用程序活动也已连接?即 FirebaseDatabase.getInstance().goOnline() == true ??
需要一些代码和帮助!请!!
解决方案
如果您的应用程序将长期处于后台,您需要知道 Android(操作系统)可能会杀死您的应用程序的进程以支持更重要的应用程序。当您的进程在前台不再可见时,Android 也可能会阻止您的进程联网。这是正常的行为,因为普遍的兴趣是防止表现不佳的应用程序消耗过多的资源。
如果您的应用需要在用户不再使用它时继续联网,则您必须启动一个foreground service
,这还要求您向用户显示通知,向用户表明您的应用仍在运行。这是需要的,因为用户应该知道应用程序将消耗比预期更多的资源。
推荐阅读
- javascript - Google Maps API - 有没有办法在下次点击时反转监听器?
- line - 如何找到两条线段之间点的特定比率?
- java - SOAP API 客户端请求创建问题 - addChildElement (org.w3c.dom.DOMException: NAMESPACE_ERR)
- ruby-on-rails - 如何为 Rails 公用文件夹中的所有文件创建路径?
- python - 如何在给定时间后关闭 matplotlib 动画窗口?
- android - 当我运行 Android 项目时,所有组件都相互重叠
- angular - 当我在 Angular 应用程序中单击图标时,如何将与特定元素相关的特定值传递到列表中?
- go - 无法在给定类型的类型定义上调用方法
- python - Pandas 数据框 - 数据中有重复项,但重复项不在同一列中
- xamarin - Xamarin Forms Android Autosize Label TextCompat pre android 8不会自动调整文本大小