我使用这行代码来启动我的应用
intent.setFlags(805306368);
它完全启动应用程序并在后台运行时恢复它。但整数805306368是什么意思?
如果它正在运行,它可以恢复我的应用程序。有谁知道。
答案 0 :(得分:4)
805306368
相当于十六进制0x30000000
,0x30000000
用于打开Intent
并带有以下标记:
Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_SINGLE_TOP
因此,它相当于使用上述组合或0x30000000
。
来自Android文档FLAG_ACTIVITY_SINGLE_TOP,FLAG_ACTIVITY_NEW_TASK:
FLAG_ACTIVITY_SINGLE_TOP = 0x20000000
FLAG_ACTIVITY_NEW_TASK = 0x10000000
因此,0x30000000
另外,如docs中所述,新的任务标志即FLAG_ACTIVITY_NEW_TASK
用于实现以下行为:
使用此标志时,如果任务已在您正在启动的活动中运行,则不会启动新活动;相反,当前任务将简单地以最后一个状态显示在屏幕的前面。
和单个顶部标志,即FLAG_ACTIVITY_SINGLE_TOP
用于实现以下行为,如docs中所述:
如果设置,如果活动已经在历史堆栈的顶部运行,则不会启动该活动。
因此,这些标志有助于恢复您的活动并阻止开启新活动。