我发现很难理解在Android中使用各种launch modes的确切情况。任何人都可以提供一些例子来帮助理解各种模式何时合适?
答案 0 :(得分:38)
在Browser和Alarm Clock应用程序之间,您将涵盖所有四种启动模式:
BrowserActivity 使用 singleTask 。一次只有一个浏览器活动,它不会成为将其意图发送到打开网页的部分任务。虽然它可能会返回到最近启动它的任何东西,当你回击时它实际上固定在它自己的任务活动堆栈的底部。它将与其启动的活动(如书签)共享其任务。
BrowserBookmarksPage 使用 singleTop 。虽然此活动可能有多个实例,但如果任务的活动堆栈顶部已有一个实例,则会重复使用该活动并调用onNewIntent()
。这样,如果多次启动书签活动,您只需返回一次即可返回浏览器。
AlarmClock 使用标准。用户可以启动此活动的多个实例,这些实例可以是任何任务的一部分,也可以是活动堆栈中的任何位置。作为一个相当简单的应用程序,它并不真正要求严格控制其活动。
AlarmAlert 使用 singleInstance 。一次只有一个警报活动,它始终是自己的任务。它启动的任何东西(如果有的话)都成为它自己新任务的一部分。
答案 1 :(得分:9)
官方文档有点令人困惑,所以这里有一个表格可供帮助。
http://androidisland.blogspot.com/2010/12/activity-launch-modes-simple.html