В документе Notification
класса я вижу это:Уведомления Android: требуется Intent.FLAG_ACTIVITY_NEW_TASK?
общественного PendingIntent contentIntent
Намерение выполнить, когда запись расширяется статус щелкнул. Если это действие, оно должно содержать флаг
FLAG_ACTIVITY_NEW_TASK
, который требует, чтобы вы позаботились об управлении задачами, как описано в документе Tasks and Back Stack. В частности, не забудьте прочитать раздел уведомлений Handling Notifications о правильных способах запуска приложения из уведомления.
Я прочитал материалы, связанные с вышеуказанным, но я все еще не понимаю. Почему флаг FLAG_ACTIVITY_NEW_TASK
требуется при запуске действия при нажатии на уведомление? Я попытался следующий код:
NotificationManager manager = (NotificationManager)context.
getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(
android.R.drawable.stat_notify_sync, title,
System.currentTimeMillis());
notification.flags |= Notification.FLAG_AUTO_CANCEL;
Intent intent = new Intent(context, NotifiedActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // IS THIS REALLY REQUIRED??
PendingIntent pt = PendingIntent.getActivity(context, 0, intent, 0);
notification.setLatestEventInfo(context, title, text, pt);
manager.notify(0, notification);
Я побежал код выше, и с и без intent.setFlags
линии, и, кажется, нет никакой разницы. На самом деле, многие образцы кода, которые я нашел, просто не имеют этой строки. Итак, почему в документе говорится, что флаг FLAG_ACTIVITY_NEW_TASK
является обязательным, и какая разница в обработке уведомлений?
Очень четкие объяснения. Спасибо! – ycsun