jyo*_*min 18 android android-intent android-activity
我在意图中知道不同类型的标志但无法在我的活动中使用.任何人都可以解释我,
Jit*_*Dev 22
我们怎样才能完成一项活动呢?
要完成一项活动,您需要手动调用finish()活动方法或按下后退按钮,该按钮本身调用finish()方法.
我想你问的Android启动模式也可以使用Intent标志声明,例如:
1)FLAG_ACTIVITY_NEW_TASK - 如果设置,此活动将成为此历史堆栈上新任务的开始.任务(从启动它的活动到下一个任务活动)定义用户可以移动到的原子活动组.任务可以移动到前台和后台; 特定任务内的所有活动始终保持相同的顺序.
2)FLAG_ACTIVITY_CLEAR_TOP - 如果设置,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是将关闭其上的所有其他活动,并将此Intent传递给作为新意图的(现在在顶部)旧活动.
3)FLAG_ACTIVITY_SINGLE_TOP - 如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动活动.
有关Intents的更多信息,请访问Android开发者网站.
您也可以通过此链接中的示例阅读详细说明.
如何在Flags的帮助下操纵活动堆栈.
操作后堆栈取决于您的要求,例如,如果您希望在应用程序启动后稍后查看某个活动,那么您可以将其保留在后堆栈中此外,如果您不希望看到明确的屏幕,例如只有调用的启动屏幕一旦需要在导航到其他屏幕时完成.
您可以调用finish()您的活动来完成它.根据您的要求,您可以在此时使用标志.以下是它们的工作原理:
FLAG_ACTIVITY_CLEAR_TASK - 如果设置在传递给startActivity()的任何意图中,它将导致在活动开始之前清除与活动关联的任何现有任务.也就是说,所有旧活动都已完成.
FLAG_ACTIVITY_CLEAR_TOP - 如果设置在传递给startActivity()的任何意图中,并且正在启动的活动已在当前任务中运行,那么除了启动该活动的新实例之外,其上的所有其他活动都将是关闭,此Intent将作为新Intent传递给旧活动.
FLAG_ACTIVITY_NEW_TASK - 如果设置在传递给startActivity()的任何intent中,则此活动将成为此历史堆栈上新任务的开始.
FLAG_ACTIVITY_SINGLE_TOP - 如果设置为传递给startActivity()的任何意图,则如果活动已经在历史堆栈的顶部运行,则不会启动该活动.
你可以像这样使用它:
Intent i=new Intent(this, Sample.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
有关进一步说明,您可以检查此Intent以及Back Stack和Tasks
如果您想结束活动,可以从该活动调用 finish() 方法。
有不同类型的标志可用于活动:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP
Run Code Online (Sandbox Code Playgroud)
您可以使用 Intent.FLAG_ACTIVITY_NEW_TASK 作为任何活动的 setFlag 方法参数。
希望它可以帮助你。
| 归档时间: |
|
| 查看次数: |
39917 次 |
| 最近记录: |