Android中的根活动是什么



https://developer.android.com/guide/topics/manifest/Activity-element.html

Android:ewaysRetaStaskState

是否始终由系统维护活动的任务状态," true"如果是,并且" false"如果允许系统在某些情况下将任务重置为初始状态... 此属性仅对任务的根活动有意义;所有其他活动都被忽略了。

那么根活动到底是什么意思?

是根活动是指

android.intent.action.MAINandroid.intent.category.LAUNCHER定义的活动

或只是

"任何碰巧在此确切时刻的背部堆栈底部的活动"

一般而言,是,用android.intent.action.MAINandroid.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>

最新更新