2016-11-28 9 views
2

Androidを扱うときにPubNubがFCMを使用することがわかっているので、プッシュ通知のサードパーティとしてPubNubサービスを使用しているAndroidアプリケーションで作業しています。アプリが死んだときにPubNubプッシュ通知を受け取る

私はアプリケーションクラスで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クラスから受け取る方法は?

+0

GCMを受信(FCM)のメッセージを使用して検討することができます心の中ですべてのことで、特定の条件

であなたのインターネットのかかわりをカットしますDoze modeに対処する必要がありますPubNubとは何の関係もありません。デバイスOSはデバイスOSを受け取り、アプリに転送します。 https://developer.android.com/training/monitoring-device-state/doze-standby.htmlのこのリンクをご覧ください。このリンクはhttps://android-developers.googleblog.com/2015/10/how-google-cloudです。 -messaging-handles-doze.html –

答えて

0

Applicationクラスに物を入れても問題は解決しません。

スワイプで手動でアプリを殺すと、Applicationクラスのすべてが明らかに破壊されます。 Pubnubが更新を受け続けることは決してありません。

Androidはバックグラウンドのときにランダムな瞬間にもあなたのアプリを殺すことができます。あなたのApplicationクラスも破壊され、その中のビジネスロジックは間違いなく良いアイデアです。

は、最後にあなたがserviceご利用の場合は、それを必要とする場合

関連する問題