Question

I am using this code inside a service in order to get a notification if I have any new alerts but when I click on them I'm not getting to the view that I want:

if(newAlertCounter > 0) // alert user about new alerts
{
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_action_warning)
    .setContentTitle(newAlertCounter + " new flood alerts!")
    .setContentText("Tap to see where in your vecinity.");

    // Sets an ID for the notification
    int mNotificationId = 001;
    // Gets an instance of the NotificationManager service
    NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    // Builds the notification and issues it.
    mNotifyMgr.notify(mNotificationId, mBuilder.build());

    // notification click action
    Intent notificationIntent = new Intent(this, ViewAlertsActivity.class);

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    mBuilder.setContentIntent(resultPendingIntent);
}

It shows up but its not clickable, so whats wrong with this?

Was it helpful?

Solution

put

mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

after

mBuilder.setContentIntent(resultPendingIntent);

OTHER TIPS

Move your

mNotifyMgr.notify(mNotificationId, mBuilder.build());

after

mBuilder.setContentIntent(resultPendingIntent);

When you call .build() you create the notification without the content intent. (and no, it will not be added after because the object which will be sent to notification system will be the Notification not the Builder)


if(newAlertCounter > 0) // alert user about new alerts
{
    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
    .setSmallIcon(R.drawable.ic_action_warning)
    .setContentTitle(newAlertCounter + " new flood alerts!")
    .setContentText("Tap to see where in your vecinity.");

    // Sets an ID for the notification
    int mNotificationId = 001;
    // Gets an instance of the NotificationManager service
    NotificationManager mNotifyMgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
    // Builds the notification and issues it.


    // notification click action
    Intent notificationIntent = new Intent(this, ViewAlertsActivity.class);

    PendingIntent resultPendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    mBuilder.setContentIntent(resultPendingIntent);

    mNotifyMgr.notify(mNotificationId, mBuilder.build());
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top