【发布时间】:2017-03-04 05:27:13
【问题描述】:
我发现很难理解每个launch modes 将在 Android 中使用的确切情况。谁能给我一些例子来帮助理解各种模式什么时候合适?
【问题讨论】:
标签: android
我发现很难理解每个launch modes 将在 Android 中使用的确切情况。谁能给我一些例子来帮助理解各种模式什么时候合适?
【问题讨论】:
标签: android
在Browser 和Alarm Clock 应用程序之间,您涵盖了所有四种启动模式:
BrowserActivity 使用 singleTask。一次只有一个浏览器活动,它不会成为发送它打开网页的意图的部分任务。虽然它可能会在您回击时返回到最近启动的任何内容,但它实际上已固定在其自己的任务活动堆栈的底部。它将与它启动的活动(如书签)共享其任务。
BrowserBookmarksPage 使用 singleTop。虽然此活动可以有多个实例,但如果在任务的活动堆栈顶部已经有一个,它将被重用并调用onNewIntent()。这样,如果多次启动书签活动,您只需回击一次即可返回浏览器。
AlarmClock 使用标准。用户可以启动此活动的多个实例,这些实例可以是任何任务的一部分,也可以是活动堆栈中的任何位置。作为一个相当简单的应用程序,它并不需要严格控制其活动。
AlarmAlert 使用 singleInstance。一次只有一个警报活动,它始终是它自己的任务。它启动的任何东西(如果有的话)都会成为它自己的新任务的一部分。
【讨论】:
singleTop 可以轻松返回浏览器。
官方文档有点混乱,所以这里有一个表格来帮助。
http://androidisland.blogspot.com/2010/12/activity-launch-modes-simple.html
【讨论】: