Мне трудно понять точные обстоятельства, при которых каждый из режимов запуска будет использоваться в Android.Может ли кто-нибудь дать мне несколько примеров, которые помогут понять, когда подходят различные режимы?
Между Браузером и Будильником приложениями вы можете охватить все четыре режима запуска:
BrowserActivity использует singleTask . За один раз выполняется только одно действие браузера, и оно не становится частью задач, которые отправляют его на открытие веб-страниц. Хотя он может вернуться к тому, что запускал последний раз, когда вы наносите ответный удар, он фактически зафиксирован в нижней части собственного стека активности задач. Он поделится своей задачей с действиями, которые он запускает как закладки.
BrowserBookmarksPage использует singleTop . Несмотря на то, что может быть несколько экземпляров этого действия, если оно уже есть в верхней части стека действий задания, оно будет использовано повторно и будет вызвано onNewIntent(). Таким образом, вам нужно будет всего лишь один раз вернуться к браузеру, если действие по закладкам запускается несколько раз.
onNewIntent()
AlarmClock использует стандарт . Пользователь может запустить несколько экземпляров этого действия, и эти экземпляры могут быть частью любой задачи и в любом месте стека действий. Как довольно простое приложение, оно не требует строгого контроля за своей деятельностью.
AlarmAlert использует singleInstance . Только одно действие оповещения за раз, и это всегда его собственная задача. Все, что он запускает (если что-то), становится частью его собственной новой задачи.
Официальная документация немного сбивает с толку, поэтому вот таблица, чтобы помочь.
http://androidisland.blogspot.com/2010/12/activity-launch-modes-simple.html