我是否需要Android服务来检查数据库中是否有更改?

时间:2018-02-17 09:05:55

标签: android firebase firebase-realtime-database android-service

我正在创建Android应用,并使用Firebase。 我有'使命','使命'有地位。 如果状态更改为“活动” - 我需要“唤醒”我的应用并运行“ActiveMissionActivity”代码。 (服务的工作应该只是'唤醒应用程序'并转到其他活动)

我可以编写missionDbRed onChildChanged监听器,它将在状态为活动时激活 - 但仅在应用程序运行时才会激活。

这个问题的好习惯是什么?我的朋友建议我使用“Android服务”,但我不确定我需要哪种类型,以及是否有适合Firebase DB的内容。

例如我见过'Firebase云功能'但我不确定哪一个更合适,为什么。感谢

2 个答案:

答案 0 :(得分:2)

由于推送通知不是您问题的解决方案,处理此问题的最佳方法是构建一个服务,检查(在数据库中)您感兴趣的值是否已更改。

现在关于服务,一个坏主意是运行一个持续检查该值的服务。这将导致巨大的电池消耗,并且当Android释放资源时,您冒着被杀的风险。你可以注意到这个here

您可以通过告诉服务何时开始检查您感兴趣的值来解决此问题。(例如,使用Alarm API并假设您知道何时应该发生这种情况)您可以看到类似here的内容

尽可能少地保持服务的存在可能是最安全的方式。

对于Google云端功能,您可能希望在通过您建立的服务发生的操作之前使用这些功能发送通知。

答案 1 :(得分:0)

因此,如果您的应用关闭时状态更改为有效状态,那么这意味着您的应用中某个地方的值已更改了吗?如果是这种情况,只需向用户设备发送推送通知即可将其唤醒。它比使用后台服务更高效。