Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clicking on Notification is not starting intended activity?

I am using GCM in my application and also using NotificationManager to Create a Notification whenever GCM message is received.Till now everything is working perfectly and GCM message is showing correctly in Notification area, but when I click on the notification it should start an activity of my application which will display the message detail which is not happening. Every-time I click on notification it does not start any activity and it remains as is.My code for creating Notification is :

private void sendNotification(String msg) {         SharedPreferences prefs = getSharedPreferences(                 DataAccessServer.PREFS_NAME, MODE_PRIVATE);         mNotificationManager = (NotificationManager) this                 .getSystemService(Context.NOTIFICATION_SERVICE);         Intent intent = new Intent(this, WarningDetails.class);         Bundle bundle = new Bundle();         bundle.putString("warning", msg);         bundle.putInt("warningId", NOTIFICATION_ID);         intent.putExtras(bundle);         // The stack builder object will contain an artificial back stack for         // the         // started Activity.         // This ensures that navigating backward from the Activity leads out of         // your application to the Home screen.         TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);         // Adds the back stack for the Intent (but not the Intent itself)         stackBuilder.addParentStack(WarningDetails.class);         // Adds the Intent that starts the Activity to the top of the stack         stackBuilder.addNextIntent(intent);          PendingIntent contentIntent = stackBuilder.getPendingIntent(0,                 PendingIntent.FLAG_UPDATE_CURRENT);          NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(                 this).setSmallIcon(R.drawable.weather_alert_notification)                 .setContentTitle("Weather Notification")                 .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))                 .setContentText(msg);         String selectedSound = prefs.getString("selectedSound", "");         if (!selectedSound.equals("")) {             Uri alarmSound = Uri.parse(selectedSound);             mBuilder.setSound(alarmSound);          } else {             Uri alarmSound = RingtoneManager                     .getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);             mBuilder.setSound(alarmSound);         }          if (prefs.getBoolean("isVibrateOn", false)) {             long[] pattern = { 500, 500, 500, 500, 500, 500, 500, 500, 500 };             mBuilder.setVibrate(pattern);         }          mBuilder.setContentIntent(contentIntent);         mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());     } 

I updated my code to support Preserving Navigation when Starting an Activity just like it happens in Gmail application using the Android developers website since then it stopped working.Someone Please guide me what I am missing or doing wrong in this code.

like image 617
Ansh Avatar asked Dec 23 '13 12:12

Ansh


2 Answers

My problem got solved I just have to add PendingIntent.FLAG_ONE_SHOT flag as well , so I replaced :

PendingIntent contentIntent = stackBuilder                 .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 

to

PendingIntent contentIntent = stackBuilder                 .getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT                         | PendingIntent.FLAG_ONE_SHOT); 
like image 188
Ansh Avatar answered Sep 24 '22 02:09

Ansh


I encountered the same issue and resolved it by adding android:exported="true" to the activity declaration in AndroidManifest.xml.

like image 23
Tony Vu Avatar answered Sep 22 '22 02:09

Tony Vu