我有一个带有launchmode =“singleInstance”的Activity,它是应用程序的启动器Activity.现在我正在尝试检测我的Activity将被启动哪个Flag,但是我找不到documented page上的Intent Flags的标志ID;这是旗帜
String version of the Flag ID is 270532608
和Intent的字符串版本是
04-25 20:18:57.061: V/logtag(1665): Intent { act=androID.intent.action.MAIN cat=[androID.intent.category.LAUNCHER] flg=0x10200000 cmp=<filtered> }
当应用程序第一次启动时,系统使用此Flag = Intent.FLAG_ACTIVITY_NEW_TASK或字符串版本= 268435456(它应该)调用我的Activity但是当我退出应用程序并从启动器再次启动它时,我得到此标志0x10200000而不是以前的旗帜
so my question is can anyone tell me what Flag this is?
and why my activity is being called with it?
and are there any other instances from the launcher that my activity might be triggered with a different flag asIDe from the unkNown one & 0x10200000?
解决方法:
这是旗帜的组合:
public static final int FLAG_ACTIVITY_NEW_TASK = 0x10000000;
和
public static final int FLAG_ACTIVITY_reset_TASK_IF_NEEDED = 0x00200000;
0x10000000是268435456的十六进制表示法.
0x00200000是2097152的十六进制表示法.
如果你添加这些数字,你会得到:
0x10200000,这是270532608的十六进制表示法.
因此,第一次启动应用时,您只需获得FLAG_ACTIVITY_NEW_TASK,但第二次获得FLAG_ACTIVITY_reset_TASK_IF_NEEDED.这只是一个按位OR运算.
要检查所需的标志是否处于活动状态,您可以执行按位AND,如下所示:
boolean hasNewTaskFlag = (flg & FLAG_ACTIVITY_NEW_TASK) != 0;
总结 以上是内存溢出为你收集整理的android – 启动器活动上的未知意图标志全部内容,希望文章能够帮你解决android – 启动器活动上的未知意图标志所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)