首次安装在设备上时,活动历史记录堆栈错误

mar*_*ark 7 android

编辑/更新:

作为对以下问题的更新,我找到了导致它发生的确切操作.

  1. 通过Android浏览器从url下载apk
  2. 安装应用程序.
  3. 安装后,该应用程序为您提供了两个选择:"打开"或"完成".
  4. 如果选择"打开",则开始下面描述的古怪行为.
  5. 如果您选择"完成",然后从应用程序托盘启动应用程序,它可以正常工作.

所以看起来这个问题是由安装APK后浏览器提供的"打开"按钮引起的.


首次安装时,我在应用程序的历史堆栈中遇到错误.我做了一个测试应用来证明这一点.

测试应用程序只是两个活动,A和B.活动A启动B.这就是它的全部功能.Rest是来自eclipse的向导生成的模板代码.

当用户安装应用程序(通过web url apk),并且一次运行它时,我得到一个无序的活动堆栈:

- 用户启动应用程序,A位于顶部.
- 通过单击按钮使A启动B. B位于堆栈顶部.
- 用户点击主屏幕按钮.
-User返回应用程序,显示A而不是B.
-User点击后退键,显示B!
- 用户再次击中后退键,显示A!
- 用户再次点击后退键,显示主屏幕.
- 现在堆栈是干净的,应用程序从现在起"正常"运行!

还有其他人看到这个吗?这几乎就像这个已知的bug,但我的用户不是从eclipse安装的:http://code.google.com/p/android/issues/detail?id = 2337&q = first%20%20i ...

如果有人想尝试,我可以提供测试应用程序/源代码.这是清单,它没有任何特殊的自定义.

<activity android:name=".ActivityA"
          android:label="ActivityA"
  >
  <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

<activity android:name="ActivityB"
          android:label="ActivityB"
  >
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

据我所知,这肯定不会发生,并且在你第一次清除历史堆栈后工作正常.

谢谢