Я использую Notification
некоторое время, и вчера я заметил, что документация PendingIntent
говорит, что намерение, которое передается вPendingIntent.getActivity()
метод должен иметь набор FLAG_ACTIVITY_NEW_TASK
:
Note that the activity will be started outside of the context of an existing activity, so you must use the Intent.FLAG_ACTIVITY_NEW_TASK launch flag in the Intent.
Однако я никогда не устанавливал этот флаг при использовании Notification
s, и до сих пор не испытывал никаких проблем. Я видел несколько примеров Notification
, где FLAG_ACTIVITY_NEW_TASK
не установлен для Intent
, на который ссылается PendingIntent
. В частности, в официальном руководстве показан фрагмент ниже:
Context context = getApplicationContext();
CharSequence contentTitle = "My notification";
CharSequence contentText = "Hello World!";
Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
И, как видите, они не устанавливают флаг FLAG_ACTIVITY_NEW_TASK
. Итак, мой вопрос: должен ли я всегда устанавливать флаг FLAG_ACTIVITY_NEW_TASK
при использовании PendingIntent.getActivity()
или есть некоторые сценарии, в которых его можно опустить? В частности, при использовании Notification
s могу ли я использовать Intent без установки этого флага?