【发布时间】:2011-07-13 22:11:58
【问题描述】:
我正在尝试解决与此处所做的类似的问题 (link text)
除了在我的情况下,当用户在按下主页按钮后恢复应用程序时,活动 A、启动活动 B、启动活动 C - 我希望显示最后一个活动 C。相反,正在发生的事情是我回到了 A。
另外,我发现即使退出应用程序,如果我按住主页按钮,我的应用程序仍然列为活动应用程序,即使在 LogCat 中我可以看到它退出正常。
另外,如果这很重要,我最近确实添加了android:launchMode ="singleTask" 以使某些通知逻辑正常工作。不过在那之前我看到了主页按钮的行为。
我非常感谢您的任何想法。
[编辑 - 添加一些代码 sn-ps]
<activity
android:name =".connection.ActivityA"
android:label ="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:theme ="@android:style/Theme.NoTitleBar"
android:launchMode ="singleTask"
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 =".screens.AvtivityB"
android:label ="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:theme ="@android:style/Theme.NoTitleBar"
android:launchMode ="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity android:name =".screens.ActivityC"
android:label ="@string/app_name"
android:configChanges="orientation|keyboardHidden"
android:theme ="@android:style/Theme.NoTitleBar"
android:screenOrientation="portrait" >
</activity>
下面是我开始每个活动的方式: 在活动 A 中:
private void startActivityB() { Intent activityBIntent = new Intent(this, ActivityB.class); this.startActivityForResult(activityBIntent , ACTIVITYB_TAG); }
Activity B 实际上有几个 Activity 可供它选择(它有一个 Intent 列表)根据它接收到的输入来显示,但启动它们的方式与 Activty A 启动 B 的方式相同。一旦显示第一个 Activity,用户滑动屏幕导航到左侧或右侧屏幕。当用户向左或向右滑动时,当前 Activity 会将信息放入其返回 Intent 中,Activity B 使用该 Intent 来显示下一个 Activity。此外,由于用户控制之外的逻辑可能会提示更改显示的屏幕,因此每个 Activty 调用都会在 onStop 中自行完成,以避免返回按钮问题。
【问题讨论】:
标签: android