0

GCMを使用しています。通知が来たら、私は特別なことをしたいと思います。だから、通知にはonClickListenerのようなものが必要です。何か案が ?GCM通知でonClickListenerを設定する

Intent intent = new Intent(this, MainActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 
      PendingIntent.FLAG_ONE_SHOT); 

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.lastlast) 
      .setContentTitle(getString(R.string.message)) 
      .setContentText(resMessage+getString(R.string.interested_int_you)) 
      .setAutoCancel(true) 
      .setSound(defaultSoundUri) 
      .setContentIntent(pendingIntent); 
    NotificationManager notificationManager = 
      (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); 
+0

して定義された活動

からデータをフェッチします。あなたはすでにやっていることにPendingIntentを使わなければなりません。あなたのケースでは、ユーザーが通知をクリックするたびにMainActivityが起動され、MainActivityの起動に関して異なることをしたい場合は、「インテント」にいくつかの値を入力し、MainActivityの値を確認できます。 –

+0

説明ありがとうございます –

答えて

3

それは非常にシンプルな、他の1つのアクティビティからデータを送るようなものです: はここに私のコードです。

intent.putExtra( "tag"、 "data")またはbundle.like thisに必要なデータを追加するだけで済みます。

Intent intent = new Intent(this, MainActivity.class); 
intent.putExtra("notification_tag", notification); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 
      PendingIntent.FLAG_ONE_SHOT); 

と通知のためのonClickListenerはありません

getIntent().getStringExtra("notification_tag"); 
+0

アクティビティがフォアグラウンドにあるときの対処方法?私の場合、他のアプリケーションでは1つのアクティビティしかフラグメントではありません。 –

+0

通知タイプをintent.putExtra()で送信できます。通知タイプを判断することで、あなたのフラグメントを開き、フラグメントのメソッドを呼び出すことができます –

関連する問題