如何在Android中使用意图标志?[已关闭]

q8l4jmvw  于 2023-01-19  发布在  Android
关注(0)|答案(2)|浏览(95)

九年前就关门了。
Improve this question
我对不同类型的旗帜有一定的认识,但不能在活动中使用。有人能解释一下吗?

  • 我们怎样才能完成一项活动和选择?
  • 如何在Intent标志的帮助下操作Activity堆栈。
e37o9pze

e37o9pze1#

你可以在你的活动中调用finish()来完成它。根据你的需要,你可以在这个时候使用一些标志。
下面是它们的工作原理,来自Android documentation about Intent
FLAG_ACTIVITY_CLEAR_TASK
如果在传递给startActivity()的任何Intent中进行设置,它将导致在Activity启动之前清除与Activity关联的任何现有任务,即完成所有旧Activity。
FLAG_ACTIVITY_CLEAR_TOP
如果在传递给startActivity()的任何Intent中进行了设置,并且正在启动的Activity已在当前任务中运行,则不会启动该Activity的新示例,而是关闭其上的所有其他Activity,并且此Intent将作为新Intent交付给旧Activity。
FLAG_ACTIVITY_NEW_TASK
如果在传递给startActivity()的任何Intent中设置,则此Activity将成为此历史堆栈上新任务的开始。
FLAG_ACTIVITY_SINGLE_TOP
如果在传递给startActivity()的任何Intent中进行设置,则Activity已在历史堆栈顶部运行时将不会启动。
您可以像这样使用它:

Intent i=new Intent(this, Sample.class);
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);

有关进一步说明,还可以查看Back Stack and Tasks

xxhby3vn

xxhby3vn2#

如果要完成Activity,可以从该Activity调用方法finish()。
有不同种类的标志可用于活动:

FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_SINGLE_TOP

然后,您可以将witn Intent.FLAG_ACTIVITY_NEW_TASK用于任何活动的setFlag方法参数。
更多信息:Tasks and Back StacksActivities
希望对你有帮助。

相关问题