【问题标题】:Start an app by long-pressing home button always restarts the app instead of bring it to foreground通过长按主页按钮启动应用程序始终会重新启动应用程序而不是将其置于前台
【发布时间】:2012-10-29 19:10:14
【问题描述】:

我的应用有两个 Activity,ActivityA 和 ActivityB。它们在下面的 AndroidManifest 中指定:

<activity android:name=".ActivityA" android:label="@string/app_name" android:screenOrientation="landscape" 
    android:configChanges="orientation|keyboardHidden|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>
<activity android:name=".ActivityB" 
    android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden|screenSize" 
    android:windowSoftInputMode="stateAlwaysHidden"/>

问题的场景如下。

  1. 我启动应用程序并显示 ActivityA。
  2. 从 ActivityA,我启动 ActivityB 并关闭 ActivityA。现在任务栈只包含ActivityB。
  3. 我按下 Home 键,然后手机进入主屏幕。
  4. 我长按主页按钮,然后从历史记录中选择我的应用程序。
  5. 在第 4 步之后,ActivityA 启动并显示,任务堆栈包含顶部的 ActivityA 和底部的 ActivityB。

我在第 5 步很困惑。我的预期是,应用程序将以其现有的任务堆栈被带到前台,即任务堆栈中只有 ActivityB。为什么 Android 在第 5 步启动 ActivityA?

顺便说一句,客户端日志在第 5 步包含以下消息:

10-26 21:29:04.070 V/HtcAppUsageStats(275):(启动应用程序,包):(MyApp,com.example.myapp)

10-26 21:29:04.070 I/ActivityManager(275):开始活动:Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x34500000 cmp=com。 example.myapp/.ActivityA bnds=[0,566][540,662](有附加功能)}来自 pid 275

感谢您的任何建议!

【问题讨论】:

  • 也许你的应用程序崩溃了,你捕捉到异常,当它进入后台时(参见 onPause() 等)并且每次都重新创建?
  • 我的应用没有崩溃。我在日志中没有看到任何异常。
  • 您能否检查一下您手机的开发者选项中是否启用了“不保留活动”选项
  • 我的手机没有“不保留活动”开发者选项。我手机的操作系统版本是2.3.3。
  • 您是否在应用程序代码的任何地方使用了 finish() 方法? ActivityB.onPause() 方法有什么特别的作用吗?

标签: android


【解决方案1】:

啊,我看到了这个 Android 错误,http://code.google.com/p/android/issues/detail?id=26658。 这似乎是根本原因。

【讨论】:

    【解决方案2】:

    好的,所以如果你想让一个 Activity 在长按主页按钮时不显示:

    1. 以intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);开始该活动

    2. 在该活动的 android Manifest 中 android:excludeFromRecents="true"

    你也可以关注这个link 这应该可以解决您的问题!!!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2014-11-22
      • 2017-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多