【问题标题】:Receive PubNub Push Notifications when app is killed当应用程序被杀死时接收 PubNub 推送通知
【发布时间】:2017-04-12 09:54:56
【问题描述】:

我正在开发一个使用 PubNub 服务作为第三方推送通知的 Android 应用程序,众所周知,PubNub 在处理 Android 时使用 FCM。

我已将来自 PubNub 的推送通知的侦听器放在应用程序类中:

pubnub.addListener(new SubscribeCallback() {
        @Override
        public void status(PubNub pubnub, PNStatus status) {
            Log.d(TAG, "PubNub status: " + status.getStatusCode());
        }

        @Override
        public void message(PubNub pubnub, PNMessageResult message) {
            Log.d("PubNub", "PubNub Channel Name: " + message.getChannel());
            Log.d("PubNub", "PubNub Message: getMessage " + message.getMessage().toString());

        }

        @Override
        public void presence(PubNub pubnub, PNPresenceEventResult presence) {

        }
    });

当应用程序在前台或后台时一切正常,但问题是当应用程序被终止(从正在运行的任务中滑动)时,我无法从 PubNub 接收任何推送通知。

我该如何解决这个问题?我应该将 PubNub 侦听器放在其他地方吗?或者我如何通过FirebaseMessagingService 类接收它?

【问题讨论】:

标签: android firebase firebase-cloud-messaging pubnub


【解决方案1】:

把东西放在Application 类不会解决你的任何问题。

当您通过滑动手动终止应用程序时,Application 类中的所有内容都将明显被破坏。 Pubnub 不可能继续接收更新。

Android 也可以在你的应用程序处于后台时随机杀死它,你的Application 类也被破坏了,在其中做业务逻辑绝对不是一个好主意。

最后你必须处理Doze mode,这会在某些情况下切断你的互联网连接

考虑到所有这些,如果您的用例需要,您可以考虑使用service

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 2018-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    相关资源
    最近更新 更多