- 以下的一些是知识点是平时在开发的过程中遇到的一些知识点,总结起来,目的是提高自己的水平,由于本人开发时间不长,有些知识点可能过于的简单,但是好记性不如烂笔头,如果有错误的地方请指正,谢谢。
关于startActivityForResult的requestCode的位数的问题,项目中因为传值的需要,要用到requestCode,一次写了
private static final int request = 0XABCDEF;
结果报了一个错误
Can only use lower 16 bits for requestCode
意思是说request 的长度不能超过16位,在一次看源码的过程中看到了报这个错误的原因
以下为源码:
static void checkForValidRequestCode(int requestCode) {
if ((requestCode & 0xffff0000) != 0) {
throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
}
}
这是系统给我们传进去的requestCode进行与运算,如果长度大于是16位,结果就不等于1所以就报了这个异常