2016-05-13 4 views
0

私はプッシュ通知を使用しています。しかし、アプリがバックグラウンドにあるとき。通知が到着すると、私は条件を設定していますので、それはonMessageRecievedに行く必要のように:アプリが閉じているときにonMessageRecievedに行かない

質問プッシュ通知の
public class MyGcmListenerService extends GcmListenerService { 

private static final String TAG = "MyGcmListenerService"; 
@Override 
public void onMessageReceived(String from, Bundle data) { 
    String message = data.getString("message"); 
    String type = data.getString("type"); 
    Log.d(TAG, "From: " + from); 
    Log.d(TAG, "Message: " + message); 
    Log.d(TAG, "Type: " + type); 
    sendNotification(message, type); 
} 
private void sendNotification(String message, String type) { 
    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this); 
    //Set all notifcation properties etc 

    if (type.equals(Constants.GROUP_NOTIFICATION)) { 
     Intent intent = new Intent(this, MainActivity.class); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    }else { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.putExtra(Keys.NOTIFICATION_TYPE, Constants.QUESTION_NOTIFICATION); 
     mBuilder.setContentIntent(PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    } 
} 
} 

それが意図データをチェックしてmainactivityに来るとき、それはquestionActivityではなく意図ので、リダイレクトさshoudデータは決して設定されません、それはmainactivityにとどまります。 私の質問は、通知からどのようにデータを取得するのですか?

+0

GCMサービスを使用していますか? –

+0

編集された私の質問 –

答えて

0

私は自分の投稿に答えを得ていないので、私は自分自身の問題を理解しました。いくつかの検索をして、2種類のペイロードがあることを発見しました。データと通知。あなたのアプリがバックグラウンドである場合よりも通知ペイロードを持っている場合。 Androidは通知自体を作成し、onMEssageRecievedは呼び出されません。だから私は私のサーバーコードに行って、単に通知のペイロード部分を削除しました:)そして今onMessagerecievedが呼び出されます。

関連する問題