2010-12-09 2 views
0

Я вызываю context.startActivity (намерение) из отдельного класса OnClickListener. Для этого я должен был установить FLAG_ACTIVITY_NEW_TASK в намерении.Последствия установки флага на намерение

Что все работает так, как ожидалось, но мне интересно, есть ли какие-либо последствия для этого, о которых я не знаю. Будет ли это создавать какие-либо проблемы с точки зрения производительности? Отражает ли он плохой дизайн с моей стороны?

Как вы думаете?

ответ

0

From the Android docs: «Этот флаг обычно используется для действий, которые хотят представить поведение стиля« пусковая установка »: они дают пользователю список отдельных вещей, которые могут быть выполнены, которые в противном случае выполняются полностью независимо от их запуска. "

More from the Android docs: «Обратите внимание, что если этот метод вызывается извне Контекста активности, то Intent должен включать флаг запуска FLAG_ACTIVITY_NEW_TASK. Это происходит потому, что, не будучи запущенным из существующего Activity, нет существующей задачи в который поместит новую деятельность и, следовательно, должен быть помещен в свою отдельную задачу ».

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

+0

Он выдает сообщение об ошибке, если я использую любой флаг, отличный от FLAG_ACTIVITY_NEW_TASK. Мои параметры - либо использовать этот флаг, либо пытаться ловить мой код в класс вызывающей активности. Я бы предпочел не делать последнее tbh ... – 2010-12-09 13:35:26