0

所以,我有这个应用程序有 4 个不同的活动:

  • A是主要活动,带有三个按钮来启动B,C和D(我认为人们习惯将这些称为子活动)。
  • 每个活动都有自己的布局,但我相信这与这里无关。

我想做的是大多数应用程序的标准行为。那是:

  1. 我首先启动应用程序并查看活动 A。
  2. 然后我按下一个按钮,例如 C,并显示活动 C。
  3. 然后我按下后退按钮,活动 A 再次显示。

我的应用程序正确执行了第 1 点和第 2 点,但在第 3 点应用程序消失了。

按钮的 onClick 方法是这样的:

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

没有任何活动覆盖 onBackPressed 方法。

这是我的清单文件的(部分):

<activity android:name=".A" android:label="A" android:launchMode="standard" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

<activity android:name=".B" android:label="B" android:launchMode="standard" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".C" android:label="C" android:launchMode="standard" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"/>
<activity android:name=".D" android:label="D" android:launchMode="standard" android:theme="@android:style/Theme.NoTitleBar" android:screenOrientation="portrait"/>

我从我所做的调试工作中知道,在调用按钮的 onClick 方法之后调用 A.onDestroy() 。基于此信息,我认为,当然我可能是错的,活动 A 出于某种原因被操作系统从历史堆栈中删除。

现在我知道这种问题已经在 stackoverflow 上解决了,但是我已经尝试了所有我能找到的建议,但没有一个奏效。我想解释一下我自己的情况。

4

1 回答 1

0

当然,我应该做错事。

我重写了 onWindowFocusChanged 方法并破坏了那里的活动,所以它当然是从堆栈中删除的。

很抱歉浪费您的时间@stefan 和@colegu。

于 2012-02-29T09:23:00.203 回答