应用程序被杀时接收PubNub推送通知

时间:2016-11-28 15:49:34

标签: android firebase firebase-cloud-messaging pubnub

我正在开发一个Android应用程序,它使用PubNub服务作为推送通知的第三方,因为你们都知道PubNub在处理Android时会使用FCM。

我已将PubNub的推送通知的监听器放在Application Class中:

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课程收到它?

1 个答案:

答案 0 :(得分:1)

将内容放入Application课程将无法解决您的任何问题。

当您通过滑动手动终止应用时,Application课程中的所有内容都会被明显破坏。 Pubnub无法继续接收更新。

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

最后,您必须处理Doze mode,这将在某种情况下削减您的互联网连接

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