android中的intent.setFlags(805306368)是什么意思?

时间:2016-07-15 17:21:58

标签: android android-intent

我使用这行代码来启动我的应用  intent.setFlags(805306368);它完全启动应用程序并在后台运行时恢复它。但整数805306368是什么意思? 如果它正在运行,它可以恢复我的应用程序。有谁知道。

1 个答案:

答案 0 :(得分:4)

805306368相当于十六进制0x300000000x30000000用于打开Intent并带有以下标记:

Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP 

因此,它相当于使用上述组合或0x30000000

来自Android文档FLAG_ACTIVITY_SINGLE_TOPFLAG_ACTIVITY_NEW_TASK

FLAG_ACTIVITY_SINGLE_TOP = 0x20000000
FLAG_ACTIVITY_NEW_TASK = 0x10000000

因此,0x30000000

中的组合results

另外,如docs中所述,新的任务标志即FLAG_ACTIVITY_NEW_TASK用于实现以下行为:

  

使用此标志时,如果任务已在您正在启动的活动中运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。

和单个顶部标志,即FLAG_ACTIVITY_SINGLE_TOP用于实现以下行为,如docs中所述:

  

如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动该活动。

因此,这些标志有助于恢复您的活动并阻止开启新活动。