mud*_*sen 9 android intentfilter android-intent android-activity
使用Intentflag "FLAG_ACTIVITY_NEW_TASK"&"FLAG_ACTIVITY_CLEAR_TOP"和有什么区别launchMode="singleTask"?设置意图标志FLAG_ACTIVITY_SINGLE_TOP和设置launchMode有什么区别 "singleTop".
我从你回答Tim的评论中理解了你的问题.所以你想知道
设置launchModes和将Intentflags设置为活动时的行为差异
回答你这个问题,你设置launchMode了一个Activity内部AndroiManifest.xml文件,但具体的上市行为在某些方面的改变运行时通过Intent标志FLAG_ACTIVITY_SINGLE_TOP,FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_MULTIPLE_TASK等.
现在让我们来看看你在主要问题中提到的两个问题.
使用Intent标志"FLAG_ACTIVITY_NEW_TASK"和"FLAG_ACTIVITY_CLEAR_TOP"和launchMode ="singleTask"有什么区别?
FLAG_ACTIVITY_NEW_TASK
当我们通过intent设置此标志并启动该活动时.在这种情况下,该活动将成为此历史堆栈上新任务的开始.任务(从启动它的活动到下一个任务活动)定义用户可以移动到的原子活动组.这意味着它将创建一个单独的历史堆栈.例如,在您的应用程序中,您有设置图标,当您单击该图标并转到设置活动时您还有其他活动.此处记录的所有操作仅从您的设置活动开始.
FLAG_ACTIVITY_CLEAR_TOP
正如其名称清楚地说明的那样,如果您在现有任务中启动带有此标志的Activity (请理解任务,那么一切都将非常容易理解),在这种情况下,此活动上方的堆栈中的所有活动都将被关闭,这将成为任务中的最后一个活动或最旧的活动.
singleTask
当您启动lanuchMode = "singleTask"已设置的交流活动并且已经有一个以此活动开始的任务运行时,则不会启动新实例,而是将当前任务放在前面.
你的借口问题
将意图标志设置为FLAG_ACTIVITY_SINGLE_TOP并将launchMode设置为"singleTop"有什么区别?
FLAG_ACTIVITY_SINGLE_TOP和lanuchMode = "singleTop"
两者都具有相同的行为,在运行时设置标志,在开始时在AndroidManifest.xml中设置launchMode.行为是,此活动将是任务中顶部的唯一活动.如果它已经在历史堆栈的顶部运行,则活动将不会再次启动.
注意:理解行为的最佳方法是遵循任何教程并进行实际检查.玩弄代码并查看行为.
以下是一些有用的链接:
启动模式:https://developer.android.com/reference/android/R.styleable#AndroidManifestActivity_launchMode
意图标志:https://developer.android.com/reference/android/content/Intent
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |