2016-07-15 126 views
1

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

回答

3

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提到:

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

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

+0

优秀答案@Ashish ... +1 – Hackerman

+0

感谢您的好解释 – Adarsh