2015-04-22 2 views
0

Когда я запускаю действие из метода startActivity из разных мест в моем приложении, vm запускает то же самое (если оно уже начато ранее из другого места) или другой экземпляр активности?Тот же или другой экземпляр при запуске такой же активности из разных мест в приложении?

А как насчет стопки мероприятий?

Я начал свою деятельность как:

Intent intent = new Intent(this, Dashboard.class); 
intent.putExtra("userid",getIntent().getStringExtra("userid")) 
startActivity(intent); 
+0

, который зависит от вашего требования, вы можете заставить его работать так, как вы хотите, используя флаги различных типов, добавленные к намерению, которое запускает конкретное действие. http://developer.android.com/guide/components/intents-filters.html – Napolean

+0

Можете ли вы дать нам подсказку, почему вы хотите это знать? Упоминание об активности может быть проблематичным. Например, если вы переходите из protrait в ландшафт, активность уничтожается и создается новый экземпляр (и, следовательно, теряет все его локальные члены) – k3b

+0

@ k3b Я хочу знать, как работает система. –

ответ

1

Положитесь на режиме запуска вы установили на активность. Он может быть стандартным, singleTop, singleTask или singleInstance. Эта ссылка может помочь:

http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode

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

+0

означает ли это то же самое для стеков активности? –

+0

Для стандартных 'и' singleTop 'могут быть созданы экземпляры нескольких действий, и экземпляр останется в одной и той же задаче. Для «singleTask» или «singleInstance» новый экземпляр будет корневой активностью новой задачи (поэтому новый задний стек). Пожалуйста, ознакомьтесь с официальной документацией, чтобы узнать больше о задаче и обратном стеке: http://developer.android.com/guide/components/tasks-and-back-stack.html –

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