我创建了一个活动,将其筛选器设置为Home活动,并将launchMode
设置为singleTask
。当我按home时,活动将处于暂停状态,然后处于停止状态。让我困惑的是,为什么当从"主页选择"对话框上显示的图标返回时,活动会重新启动?它在不调用onDestroy()
的情况下再次调用onCreate()
。
我知道有一种方法可以解决这个问题,那就是将launcherMode
设置为singleIstance
,但这种方法还不够好,因为它会导致活动无法处理onActivityResult
的其他问题。
您可能想要告诉自己想要实现什么。因为singleTask
就是这样。它将现有的意图传递给活动的现有实例的onNewIntent()
。因此,活动不会被销毁,但会调用onCreate()
,因为它将根据现有意图重新创建活动。
引用文件
系统在新任务的根目录下创建活动,并将意向路由到它。但是,如果活动的实例已经存在,则系统会通过调用其onNewIntent()方法将意向路由至现有实例,而不是创建新实例。