我正在制作一个Android应用程序,主要在后台运行,与firebase实时数据库进行通信。我的应用程序需要始终与firebase数据库同步。目前,我只在我的服务中进行数据库写操作。我一直在使用FCM同步数据库状态,但在我的情况下FCM不是很可靠。
通过将监听器附加到firebase数据库来监听数据库更改是明智的决定吗?通过附加一个监听器,我认为它将保持与数据库的开放连接,这可能会增加电池使用量。
我在这里关注的是电池使用情况。
答案 0 :(得分:0)
我认为您应为Intelligent Job-Scheduling
Android
智能地安排此工作可以提高应用程序的性能,以及系统运行状况等方面,例如电池寿命。 JobScheduler
此调度对您有用。
除了JobScheduler之外,还有其他一些工具可以帮助您的应用安排工作。其中包括:
SyncAdapter
可以帮助您在数据之间保持同步
另请考虑
了解详情
Firebase JobDispatcher
可以在您希望在预定时间检查数据库更新或备份数据等功能的几个时间段内使用。
答案 1 :(得分:0)
Android为调度任务提供了不同的API。
检查this有关作业调度的信息。
所有这些都有它们的好处和缺点。 JobScheduler 从Android 5.0(API级别21)开始提供。 Firebase JobDispatcher 需要预装Google Play。
您可以使用Android-Job库。此库根据您的要求安排作业。该库决定哪种API适合您的工作。有关详细信息,请查看Android-Job库。它易于使用。
答案 2 :(得分:0)
如果您在未根据活动的life-cycle删除的代码侦听器中使用,则需要知道您的应用程序将保持与数据库的开放连接,并且肯定会增加电池使用量
由于新流量流量,Android会在前台不再可见的情况下阻止您的网络进程。这是为了防止行为不当的应用程序消耗太多资源。当这样的进程被杀死时,取决于Android版本和设备制造商。鉴于他们努力减少后台数据的使用(以延长电池寿命),我建议不要依赖于此。
如果您的应用需要在用户不再使用时继续联网,您必须启动前台服务,这也需要您向用户显示通知,告知用户您的应用仍在运行