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);
내가 돈 ' 그 중 어떤 것도 이해하지 못한다. 해결책은'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를 허용합니다. 깃발 – marcinj
이것이 정확한 문제인지 잘 모릅니다. 어쨌든 열리는 활동이 있습니다. 내가 이해하는 바에 따르면, 이것은 재설치 중에 발생하며, 보류중인 의도가 캐시되어야합니다. – marcinj