2

我的应用程序中有以下活动结构

启动应用程序时会启动一个简单的“闪屏”活动(我们称之为“闪屏”)。此活动在用户按下按钮时启动主活动(我将其称为“主”)。

Main 可以依次从菜单启动两个活动。第一个活动呈现一个简单的表单(我们称其为“表单”),第二个是呈现地图的 MapActivity(称为“地图”)。

Main、Form 和 Map 在清单中的声明完全相同:

<activity android:name="fully qualified activity class"
        android:screenOrientation="landscape"
     android:configChanges="keyboard|keyboardHidden|orientation"
    >
    <intent-filter>
        <action android:name="android.intent.action.DEFAULT" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

当 Main 处于活动状态并且我启动 Form 并按“返回”时,Main 再次出现。再次按“返回”会弹出“Splash”。这里没有什么奇怪的。

现在出现了奇怪的部分:当我在 Main 时,启动 Map,然后按“返回”,Main 会按预期出现。但是再次按“返回”只会重新启动 Main。需要再按一次“返回”才能让我回到 Splash!

因此,似乎以某种方式启动 Map 活动会导致 Main 在活动堆栈上结束两次,而启动 Form 活动则不会!

Form 和 Map 都是这样开始的:

startActivity(new Intent(this, MyActivity.class));

我在任何活动中都没有抓住后退键。

关于发生了什么或如何调试的任何线索?

4

1 回答 1

0

我想我以前在我的一个项目中看到过这种行为。尝试在清单文件中将启动器活动(在您的情况下为 Splash)的 launchMode 属性设置为 - android:launchMode="singleTask" 。

这应该有助于澄清:http: //developer.android.com/guide/topics/fundamentals.html#acttask

于 2010-04-23T12:07:34.583 回答