通过长按主页按钮启动应用程序始终重新启动应用程序而不是将其带到前台

时间:2012-10-29 19:10:14

标签: android

我的应用有两个活动,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。
  6. 我在第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):开始活动:意图{act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x34500000 cmp = com。 example.myapp / .ActivityA bnds = [0,566] [540,662](有额外内容)}来自pid 275

    感谢您的任何建议!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

好的,所以如果你想在长按主页按钮上显示一个活动:

  1. intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);

  2. 开始该活动
  3. 在该活动的机密清单android:excludeFromRecents="true"

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