Android:应用销毁后更新Firebase实时数据库

RJB

我是Firebase实时数据库的新手,并且有一个基本问题,我似乎找不到答案。

我需要我的Android应用程序来跟踪数据库中的更改,因此我了解我需要使用onValueChange方法的addValueEventListener。但是,即使应用程序被销毁,方法onDataChange也会被调用吗?即使该应用程序不是在后台运行,我也需要能够访问数据库中信息的更改(例如,用户强制退出了该应用程序)。这是因为当值达到某个点时,我想显示一个弹出通知,因此即使应用程序未运行,我也需要能够读取值。

如果即使在应用程序在后台时调用onDataChange,由于手机始终在监听更改,因此这会消耗电池电量。

很抱歉出现基本问题,但我找不到相关信息。

谢谢!

弗兰克·范普菲伦

...当应用程序停止运行时,EventListener是否仍在侦听,是否将调用onDataChange?

事件侦听器仅在其运行的上下文处于活动状态时才处于活动状态。对于侦听器,您附加到活动中,这意味着它们在应用程序运行时处于活动状态。即使这样,如果用户没有积极使用该应用,Android可能会杀死监听器(或更准确地说,是监听器用于与服务器通信的套接字)。

如果希望侦听器保持更长时间的活动,则可以考虑在后台服务中管理侦听器。但是即使在那儿,Android可能也会关闭监听器以延长电池寿命。这是始终牢记的一件事:如果您的用例干扰了用户的偏好(并且大多数用户可能强烈希望电池寿命长于任何特定的应用程序功能),那么长期来看就不太可能继续工作。

更好的方法是将侦听器与Firebase Cloud Messaging结合使用以发送消息。当用户不积极使用应用程序时,FCM消息更有可能(尽管仍不能保证)传递,您可以使用它们来运行应用程序的某些代码。您将为此使用FCM的数据消息,这是大多数应用程序提供后台更新的方式。

您还可以使用FCM数据消息来唤醒您自己的代码,然后使该代码附加一个侦听器并获取其更新。这种行为被称为发送挠痒痒,因为所有数据消息都在唤醒应用程序代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章