我用这行代码启动了我的应用
intent.setFlags(805306368);
,它将完美启动应用程序,并在后台运行时恢复运行。但是,整数805306368是什么意思?
如果我的应用程序正在运行,它将如何恢复它。任何人都知道。
最佳答案
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
中的组合results另外,如docs中所述,新任务标志即
FLAG_ACTIVITY_NEW_TASK
用于实现以下行为:使用此标志时,如果您正在启动的活动已经在运行任务,则不会启动新的活动;相反,当前任务将以其上次进入的状态简单地显示在屏幕的前面。
如docs所述,使用单个最高标志,即
FLAG_ACTIVITY_SINGLE_TOP
来实现以下行为:如果设置了该活动,则如果该活动已经在历史记录堆栈的顶部运行,则不会启动该活动。
因此,这些标志有助于恢复您的活动并防止打开新活动。