【发布时间】:2016-11-30 01:40:38
【问题描述】:
我想让每个活动在后台堆栈中只有一个主要活动启动,所以我总是可以使用后退按钮返回到主要活动,例如(对于开始活动我使用 startActivity()):
- Main Activity - Activity1(后按)返回到 Main 活动
- 主 Activity - Activity1 - Activity2(后按)也 返回主活动
看起来我需要在启动每个新活动时使用 FLAG_ACTIVITY_CLEAR_TASK 标志,但它也会清除主活动。我试过 FLAG_ACTIVITY_CLEAR_TOP 在 1st 情况下工作正常,但在 2nd 情况下不行。
如果有人遇到同样的问题,请帮忙。任何想法表示赞赏!谢谢!
我的主要活动:
<activity
android:name=".activity.main.MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTop">
<meta-data
android:name="android.app.default_searchable"
android:value=".activity.search.SearchActivity" />
</activity>
【问题讨论】:
-
您只需要后台的 mainActivity 吗?仅在 mainActivity 后按后不应该打开其他活动吗?对吗?
-
不知道这是否有效,但也许尝试在开始新活动时对每个不是您的主要活动的活动调用 this.finish()?
-
你也在使用
Fragments吗? -
我认为您应该将活动 1 和 2 的父活动设置为 MainActivity
android:parentActivityName=".activity.main.MainActivity"链接 developer.android.com/training/implementing-navigation/… -
@EmmanuelMtali 谢谢,它对我有用!
标签: android android-intent android-activity