天天看點

關于startActivityForResult的版本适配的問題

   最近開發過程中遇到一個bug,5.0的機器上使用startActivityIfNeeded跳轉到系統撥号頁面,發現點傳回鍵無法傳回到上一個頁面,直接退回到桌面,5.0以上的版本沒有問題。

後來翻看了一下源碼,知道類似startActivity這種最終都是走的startActivityForResult

5.0的系統會根據startActivityForResult傳進去的requestCode來決定Activity的可見,根據源碼的注釋,當requestCode大于0,從目前頁跳轉到下一頁面,下一頁面沒有setResult,目前頁面沒有收到結果傳回,不會可見,由此找到了原因,之前我傳的requestCode都是大于0的,把它改成-1,5.0也能正常傳回上一頁面,完美适配5.0的機器。