- 以下的一些是知識(shí)點(diǎn)是平時(shí)在開(kāi)發(fā)的過(guò)程中遇到的一些知識(shí)點(diǎn)洗搂,總結(jié)起來(lái)消返,目的是提高自己的水平,由于本人開(kāi)發(fā)時(shí)間不長(zhǎng)耘拇,有些知識(shí)點(diǎn)可能過(guò)于的簡(jiǎn)單撵颊,但是好記性不如爛筆頭,如果有錯(cuò)誤的地方請(qǐng)指正惫叛,謝謝倡勇。
關(guān)于startActivityForResult的requestCode的位數(shù)的問(wèn)題,項(xiàng)目中因?yàn)閭髦档男枰玫絩equestCode嘉涌,一次寫了
private static final int request = 0XABCDEF;
結(jié)果報(bào)了一個(gè)錯(cuò)誤
Can only use lower 16 bits for requestCode
意思是說(shuō)request 的長(zhǎng)度不能超過(guò)16位妻熊,在一次看源碼的過(guò)程中看到了報(bào)這個(gè)錯(cuò)誤的原因
以下為源碼:
static void checkForValidRequestCode(int requestCode) {
if ((requestCode & 0xffff0000) != 0) {
throw new IllegalArgumentException("Can only use lower 16 bits for requestCode");
}
}
這是系統(tǒng)給我們傳進(jìn)去的requestCode進(jìn)行與運(yùn)算,如果長(zhǎng)度大于是16位仑最,結(jié)果就不等于1所以就報(bào)了這個(gè)異常