2014-01-20 3 views
4

Я прочитал, http://developer.android.com/guide/components/tasks-and-back-stack.html, и я просмотрел документацию для FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET, но я до сих пор не понимаю, почему сотрудник Google решил включить его в свой блог о совместном использовании.Какова цель «FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET» при совместном использовании?

http://android-developers.blogspot.com/2012/02/share-with-intents.html

Вот их фрагмент кода именно:

Intent intent=new Intent(android.content.Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 

// Add data to the intent, the receiving app will decide what to do with it. 
intent.putExtra(Intent.EXTRA_SUBJECT, “Some Subject Line”); 
intent.putExtra(Intent.EXTRA_TEXT, “Body of the message, woot!”); 

В документации сказано:

If set, this marks a point in the task's activity stack that should be cleared when the task is reset... 

Я все еще очень неуверенный этого флага. Я не уверен, что могу придумать причину, чтобы включить его в свой метод share(), но если Google использовал его в сообщении в блоге, я уверен, что они знают о сценарии, когда это вступает в игру. Заранее спасибо.

+0

Один вариант использования объясняется в [этой документации] (http://developer.android.com/training/implementing-navigation/descendant.html#external-activities). –

+2

Этот флаг теперь устарел, потому что он делает то же самое, что и «Intent.FLAG_ACTIVITY_NEW_DOCUMENT' –

+0

@EGHDK. Пожалуйста, отметьте этот вопрос как ответ, чтобы помочь другим людям с той же проблемой. –

ответ

9

В статье объясняет это в первом примере кода:

Этот флаг очищает вызываемая приложение из стека деятельности, так что пользователи прибывают в ожидаемом месте в следующий раз это приложение перезапускается.

Если вы пропустите флаг, возвращаясь в свое приложение (с домашнего экрана, из списка недавних и т.д.), вы бы увидели Activity целевой долю (сообщения/рассылки/IM приложений) вместо вашего. Попробуйте, и вы увидите разницу.

+0

О! В этом есть смысл. Спасибо за объяснение. – EGHDK

3

enter image description here

Этот флаг отмечает вызываемую деятельность и все виды деятельности, поставленные на нем должны быть очищены (удалены из стека), когда задача сброса. Этот сброс выполняется, как только задача выводится на передний план, используя FLAG_ACTIVITY_RESET_TASK_IF_NEEDED, который всегда устанавливается системой, когда пользователь возобновляет задачу с главного экрана, главного меню или списка недавно начатых действий.

Вы можете использовать это, чтобы определить точку в стеке задач, из которой все запущенные действия должны быть «забыты» после отправки задачи на задний план.

MORE: SEE HERE

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