2014-01-19 3 views
2

Следующий код работает правильно на 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); 

ответ

5

Это выглядит так же, как вопрос здесь:

http://code.google.com/p/android/issues/detail?id=61850

http://code.google.com/p/android/issues/detail?id=63236

предложил временное решение отменить существующий отложенный намерение, или использовать PendingIntent.FLAG_CANCEL_CURRENT

+0

Я не» Понимаю это. Говорят, что решение состоит в вызове 'getNotificationPendingIntent(). Cancel();' но он говорит, что getNotificationPendingIntent() не определено. Я также не знаю, как установить этот флаг. Как вы, наверное, догадались, я новичок. – TimSim

+0

как установить флаг: http://developer.android.com/reference/android/support/v4/app/TaskStackBuilder.html#getPendingIntent%28int,%20int%29, как вы видите, TaskStackBuilder.getPendingIntent принимает PendingIntent.FLAG_CANCEL_CURRENT as флаг – marcinj

+0

Я не уверен, что это точная проблема, с которой вы столкнулись, вы все равно открываете какую-либо деятельность. Насколько я понимаю, это происходит во время переустановки, некоторые ожидающие намерения должны быть кэшированы. – marcinj

Смежные вопросы