在不使用 FLAG 的情况下清除 activity 内的 Backstack
Clear the Backstack within an activity without using FLAG
我想清除 Activity 中的返回堆栈,但不是通过 startActivity()
和使用 FLAG。例如当我从应用程序图标启动应用程序时,应用程序主程序 activity 启动,但后台堆栈中有一些东西,如启动器 activity,因为当我们触摸最小化的应用程序选项卡时,启动器是可见的。我想从最小化的应用程序中删除启动器应用程序。
在清单中为您的 Activity
使用 android:noHistory="true"
属性
<activity android:name="StartActivity"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
@SorryForMyEnglish 的回答是正确的。你就是无法实施它。通过使用 android:noHistory="boolean"
属性,请参阅下面我的概念图:
因为ActivityC
和ActivityD
(最后的活动)有一个true
值,所以他们不能回到MainActivity
,但他们可以回到[=18] =] 和 ActivityB
。此外,ActivityA
和 ActivityB
可以返回到 MainActivity
。并且在不使用此 startActivity(intent)
打开下一个 Activity
的情况下完全清除了后台堆栈(因此您将需要 FLAG
):
Intent intent = new Intent(CurrentActivity.this, NextActivityToBeOpened.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
你在manifest中声明值后,只需要调用这个startActivity(intent)
打开下一个Activity
(不需要FLAG
):
startActivity(new Intent(CurrentActivity.this, NextActivityToBeOpened.class));
是不是很简单?
记住:
- 在清单中将最后一个
Activity
设置为 android:noHistory="true"
。
- 另一个
Activity
必须设置为 false
值。
- 为您的所有
Activity
应用此属性。
此外,以下是如何在您的清单中使用它:
<activity android:name=".MyActivity" android:noHistory="true" />
我想清除 Activity 中的返回堆栈,但不是通过 startActivity()
和使用 FLAG。例如当我从应用程序图标启动应用程序时,应用程序主程序 activity 启动,但后台堆栈中有一些东西,如启动器 activity,因为当我们触摸最小化的应用程序选项卡时,启动器是可见的。我想从最小化的应用程序中删除启动器应用程序。
在清单中为您的 Activity
使用android:noHistory="true"
属性
<activity android:name="StartActivity"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
@SorryForMyEnglish 的回答是正确的。你就是无法实施它。通过使用 android:noHistory="boolean"
属性,请参阅下面我的概念图:
因为ActivityC
和ActivityD
(最后的活动)有一个true
值,所以他们不能回到MainActivity
,但他们可以回到[=18] =] 和 ActivityB
。此外,ActivityA
和 ActivityB
可以返回到 MainActivity
。并且在不使用此 startActivity(intent)
打开下一个 Activity
的情况下完全清除了后台堆栈(因此您将需要 FLAG
):
Intent intent = new Intent(CurrentActivity.this, NextActivityToBeOpened.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
你在manifest中声明值后,只需要调用这个startActivity(intent)
打开下一个Activity
(不需要FLAG
):
startActivity(new Intent(CurrentActivity.this, NextActivityToBeOpened.class));
是不是很简单?
记住:
- 在清单中将最后一个
Activity
设置为android:noHistory="true"
。 - 另一个
Activity
必须设置为false
值。 - 为您的所有
Activity
应用此属性。
此外,以下是如何在您的清单中使用它:
<activity android:name=".MyActivity" android:noHistory="true" />