https://developer.android.com/guide/topics/manifest/Activity-element.html
Android:ewaysRetaStaskState
是否始终由系统维护活动的任务状态," true"如果是,并且" false"如果允许系统在某些情况下将任务重置为初始状态... 此属性仅对任务的根活动有意义;所有其他活动都被忽略了。
那么根活动到底是什么意思?
是根活动是指
用android.intent.action.MAIN
和android.intent.category.LAUNCHER
定义的活动
或只是
"任何碰巧在此确切时刻的背部堆栈底部的活动"
一般而言,是,用android.intent.action.MAIN
和android.intent.category.LAUNCHER
定义的活动将是任务堆栈的根活动。
但是,如果有很少的意图标志,我们可以将任何活动作为根活动。例如我的堆栈A-> b-> c有三个活动,现在我想通过设置这些意图标志来启动活动D作为根活动 FLAG_ACTIVITY_CLEAR_TASK|FLAG_ACTIVITY_NEW_TASK
活动D将是根活动。
FLAG_ACTIVITY_CLEAR_TASK
:如果以contextivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivitivity(),此标志将导致任何现有的任务与活动开始之前要清除活动。也就是说,活动成为原本空任务的新根源,并且任何旧活动都完成。这只能与flag_activity_new_task一起使用。
我相信这是背面堆栈底部的。
在您启动应用程序或根活动时,Android中首先要执行。对于根活动,具有android.intent.action.main和android.intent.category.category.launcher意图过滤器是强制性的。
要在Zohra的答案上构建,您可以更改AndroidManifest.xml中的主要和启动器活动。要将其应用于特定的活动,请在此过程中定义它们:
<activity android:name=".StartActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>