Следующий код работает правильно на Jelly Bean - уведомление открывает TimerActivity. Однако на KitKat этот код вместо этого открывает MainActivity. Это ошибка?Уведомление открывает неправильную деятельность только на KitKat
mBuilder = new NotificationCompat.Builder(getApplicationContext())
.setSmallIcon(ongoingNotificationIcon)
.setContentTitle(ongoingNotificationContentTitle)
.setContentText(ongoingNotificationContentText)
.setTicker(ongoingNotificationTicker)
.setPriority(99)
.setOngoing(true)
;
Intent resultIntent = new Intent(this, TimerActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(TimerActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
mBuilder.setContentIntent(resultPendingIntent);
timerNotification = mBuilder.build();
startForeground(NOTIFICATION_ID, timerNotification);
Я не» Понимаю это. Говорят, что решение состоит в вызове 'getNotificationPendingIntent(). Cancel();' но он говорит, что getNotificationPendingIntent() не определено. Я также не знаю, как установить этот флаг. Как вы, наверное, догадались, я новичок. – TimSim
как установить флаг: http://developer.android.com/reference/android/support/v4/app/TaskStackBuilder.html#getPendingIntent%28int,%20int%29, как вы видите, TaskStackBuilder.getPendingIntent принимает PendingIntent.FLAG_CANCEL_CURRENT as флаг – marcinj
Я не уверен, что это точная проблема, с которой вы столкнулись, вы все равно открываете какую-либо деятельность. Насколько я понимаю, это происходит во время переустановки, некоторые ожидающие намерения должны быть кэшированы. – marcinj