如何在android中使用标志?

我有不同types的旗帜的知识,但无法用于我的活动。 有人可以解释我吗,

  • 我们如何完成一项活动?
  • 如何在Flags的帮助下操作活动栈。

Solutions Collecting From Web of "如何在android中使用标志?"

我们怎样才能完成一项活动呢?

要完成一个活动,你需要调用finish()方法来手动或按回自己调用finish()方法的button。

我想你是问Android的启动模式,也可以使用意图标志声明,如:

1)FLAG_ACTIVITY_NEW_TASK – 如果设置,则此活动将成为此历史堆栈上新任务的开始。 任务(从启动它到下一个任务活动的活动)定义用户可以移动到的活动的primefaces组。 任务可以移动到前台和后台; 特定任务内的所有活动始终保持相同的顺序。

2)FLAG_ACTIVITY_CLEAR_TOP – 如果已设置,并且正在启动的活动已在当前任务中运行,则不是启动该活动的新实例,而是closures其上的所有其他活动,并将此Intent传递给(现在在上面)作为一个新的Intent的旧活动。

3)FLAG_ACTIVITY_SINGLE_TOP – 如果设置,如果活动已经在历史堆栈顶部运行,活动将不会启动。

Intents的更多信息可以在Android Developers网站上find。

你也可以阅读这个链接中的例子的详细描述。

如何在Flags的帮助下操作活动栈。

操作回栈取决于您的要求,例如,如果您希望在应用程序启动后稍后再看到某个活动,则可以将其保留在回栈中。另外,如果您不希望看到明确的屏幕,例如仅用于启动屏幕一旦导航到其他屏幕需要完成。

你可以在你的活动中调用finish()来完成它。 根据您的要求,您可以在这个时间使用标志。 这是他们的工作方式:

FLAG_ACTIVITY_CLEAR_TASK – 如果设置为传递给startActivity()的任何意图,则会在活动启动之前清除与活动关联的现有任务。 就是说,所有的旧活动都完成了。

FLAG_ACTIVITY_CLEAR_TOP – 如果设置为传递给startActivity()的任何意图,并且正在启动的活动已经在当前任务中运行,则不是启动该活动的新实例,而是在其上的所有其他活动将被closures,这个意图将作为一个新的意图被传递到旧的活动。

FLAG_ACTIVITY_NEW_TASK – 如果设置为传递给startActivity()的任何意图,则此活动将成为此历史堆栈上新任务的开始。

FLAG_ACTIVITY_SINGLE_TOP – 如果设置为传递给startActivity()的任何意图,则活动将不会启动,如果它已经在历史堆栈的顶部运行。

你可以像这样使用它:

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

为了进一步的澄清,你可以检查这个意图 ,也返回堆栈和任务

如果要完成活动,可以从该活动调用方法finish()。

有不同种类的标志可用于活动:

 FLAG_ACTIVITY_NEW_TASK FLAG_ACTIVITY_CLEAR_TOP FLAG_ACTIVITY_SINGLE_TOP 

那么您可以使用Intent.FLAG_ACTIVITY_NEW_TASK来执行任何活动setFlag方法参数。

更多信息: 任务和返回栈和活动

希望它可以帮助你。