【问题标题】:Android: when should I use singleInstance launchmodeAndroid:我什么时候应该使用单实例启动模式
【发布时间】:2016-11-29 04:04:31
【问题描述】:

Activity 有四种启动模式,标准、单顶、单任务和单实例。前面三个比较容易理解,应用比较广泛。但是直到现在,我还没有找到任何使用singleInstance的场景。

Some of the real use case is an Activity for Launcher or the application that you are 100% sure there is only one Activity

有人用过吗?

【问题讨论】:

标签: android launchmode


【解决方案1】:

SingleInstance 启动模式只能用于完全作为一个活动实现的应用程序。 一次只存在一个实例。系统不会向持有此类型的任务启动任何其他活动。它始终是其任务的单个成员,从这里开始的活动将打开为单独的任务。

【讨论】:

  • 您不需要使用singleInstance 启动模式来获得此行为。标准启动模式也应该为您提供这种行为。一般来说,使用singleInstance 启动模式是个坏主意,除非您正在构建“主屏幕”替换。
【解决方案2】:

从来没有理由使用singleInstance 启动模式。

如果您正在构建“主屏幕”替换或启动器类型的应用程序,您将使用singleInstancesingleTask 启动模式来确保您的Activity 始终是其任务的根。这可以确保如果另一个应用程序启动您的 ActivityActivity 不会启动到调用应用程序的任务中,并且它还确保您的 Activity 只创建一个实例。

如果您正在编写“主屏幕”替换应用程序,您始终可以通过在启动其他活动时始终指定Intent.FLAG_ACTIVITY_NEW_TASK 来确保没有其他活动启动到您自己的任务中。在这种情况下,您可以使用启动模式singleTask。所以没有理由使用启动模式singleInstance。但当时 Android 的原始开发者可能并不清楚。

【讨论】:

  • 我使用了singleInstance,我想从后台清除该活动而不是我能做什么????
  • @SagarPoshiya 请打开一个新问题并描述您的问题。在此处的评论中提出问题不是获得帮助的正确方式。
【解决方案3】:
当您不希望任何其他活动成为任务的一部分时,将使用

singleInstance 启动模式。它是任务中的唯一活动。 因为这种启动模式不允许这样做。

【讨论】:

  • 我真的不认为这回答了这个问题。对我来说太长太无聊了,甚至无法查看它是否正确,但它没有回答 OP 的问题,即 “我什么时候应该使用singleInstance 启动模式?”我>
  • 已编辑答案。再次检查。
  • 好的,为什么任务中只需要一个activity呢?仍然没有回答问题:)
猜你喜欢
  • 1970-01-01
  • 2010-09-18
  • 1970-01-01
  • 2011-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
相关资源
最近更新 更多