【问题标题】:What is the difference between launch app from "recent apps" and tapping app icon从“最近的应用程序”启动应用程序和点击应用程序图标有什么区别
【发布时间】:2013-09-12 08:19:59
【问题描述】:

我正在处理大型项目,因此有一些逻辑可以保存应用程序状态,然后在后台打开正确的活动(片段)。 但无论如何,我发现如果用户浏览我的应用程序然后将其最小化 - android 在以下情况下会以不同的方式从后台打开它:

  1. 用户点击应用程序图标(行为:用户看到家庭活动,无论他在哪里,应用程序何时最小化)
  2. 用户从 android“最近的应用程序”中选择应用程序(行为:当应用程序被最小化时,用户可以准确地看到他所看到的内容)

那么,这两种方式从后台启动应用程序有什么区别呢?我一直认为,这是相同的机制,但显然,我错了。

感谢您的任何回答

【问题讨论】:

    标签: android task


    【解决方案1】:

    您应该注意以下文档 ActivityTasks。简而言之:如果用户从最近的应用程序启动应用程序,您将在 onStart 之前收到 onRestart (没有 onCreate 这意味着您的应用程序只是“暂停”)。您可以使用 onSaveInstanceState() 保存屏幕状态。但总的来说,从图标和最近开始 - 不同的应用程序行为,您应该为这种方式提供适当的代码。

    UPD 如下所述,意外行为的根本原因是额外的 lunchmode 属性。

    【讨论】:

    • 非常感谢!一般情况下也许可以,但你知道,如果规范写好了,一切都应该按照它来工作)
    • 对不起,但现在我已经看到了日志,并且根据此方法的日志(onCreate、onRestart、onStartm onResume),在每种情况下(从最近和从点击应用程序图标)调用 onRestart -两种方式彼此工作相同
    • 如果您只是最小化您的应用程序,然后从图标开始?看起来你最小化,从最近删除,然后开始表单图标。
    • 是的,我确定。而且我完全不明白android系统的差异在哪里,对后台任务的两次不同调用会导致两种不同的行为
    • 我找到了原因。如果活动 A 是“单一任务”,并且您从它导航到活动 B,您将看到这样的行为,请您更新您的答案,以便每个人都可以轻松看到它,如果遇到这个问题?谢谢。
    【解决方案2】:

    从我作为Android 用户的经验来看,两者都是一样的。

    我们通常看到的区别是我们如何关闭应用程序

    1. 按下返回按钮直到应用关闭/finish()

      在这种状态下,无论我们如何打开应用程序,它都会进入主屏幕

    2. 按主页按钮

      此状态取决于应用程序。如果应用程序不处理任何Activity,应用程序将与第一个状态相同。但是,如果应用程序处理类似onPause() Activity 然后 finish() 应用程序时,那么无论您使用应用程序图标或最近的应用程序打开什么都会提供相同的结果。

    如有错误请指正

    【讨论】:

    • 用户以一种方式最小化应用程序(通过点击主页按钮)。但是当它再次启动时,他会看到什么取决于他打开它的方式,如何打开它。这对我来说很奇怪,因为在面对它之前,我的想法和你一模一样
    • 是的,如果只用主页按钮最小化。所以答案只是第二种状态
    猜你喜欢
    • 2018-05-23
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多