【问题标题】:Why a "home" activity will be killed when the home button is pressed?为什么按下主页按钮时会终止“主页”活动?
【发布时间】:2014-11-07 07:07:02
【问题描述】:

我创建了一个活动,将其过滤器设置为主页活动,并将launchMode 设置为singleTask。当我按 home 时,活动将处于 onpause 状态,然后处于 onStop 状态。让我感到困惑的是,为什么从“主页选择”对话框上显示的图标返回时会重新启动活动?它再次调用onCreate() 而没有调用onDestroy()

我知道有一种方法可以解决这个问题,就是将launcherMode设置为singleIstance,但是这种方式还不够好,因为它会导致另一个问题,即activity将无法处理@ 987654327@.

【问题讨论】:

  • @Darpan ,我希望该活动不会被家庭底部杀死。我发现它只在应用刚安装后发生过一次。

标签: android android-launcher android-homebutton


【解决方案1】:

您可能想说出您希望达到的目标。因为singleTask 就是这样。它将现有意图传递给现有活动实例的onNewIntent()。因此 Activity 不会被销毁,但会调用 onCreate(),因为它将使用现有意图重新创建 Activity。

引用documentation

系统在新任务的根目录创建活动并将意图路由到它。但是,如果 Activity 的实例已经存在,系统会通过调用其 onNewIntent() 方法将 Intent 路由到现有实例,而不是创建一个新实例。

【讨论】:

  • 但是这个时候activity已经存在了,为什么还要重新创建呢?
  • 因为您使用了launchMode= Singletask。它在你的应用中有什么用途吗?
  • 是的,因为我的应用是一个启动器。我需要处理 Home 事件(通过 onNewEvent)。
猜你喜欢
  • 2016-12-30
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多