想要了解requestCode與resultCode的區別,我們需要先了解以下三個方法的用法:
-
startActivityForResult(Intent intent, Int requestCode)
-
setResut(int resultCode, Intent intent)
-
onActivityResult(int requestCode, int resultCode, Intent intent)
1、startActivityForResult(Intent intent, Int requestCode)
此方法是在啓動另一個Activity並等待其返回結果時調用的。
intent
:是傳給另一個Activity的,這裏就不在解釋了。
requestCode
:>= 0即可,是用於在onActivityResult()時區分是哪個Activity回傳的數據的。
2、setResut(int resultCode, Intent intent)
此方法是在被啓動的Activity中調用的。
resultCode
:被啓動的Activity可能會有多種不同的結果返回,此值就是予以識別區分的,這裏有個特殊的RESULT_OK值,沒有特殊情況用它就好了。
intent
:回傳給Activity的onActivityResult()。
3、onActivityResult(int requestCode, int resultCode, Intent intent)
此方法與startActivityForResult(Intent intent, Int requestCode)方法在同一個Activity中調用的。
這裏的三個參數與1、2中的參數是對應的,如果不對requestCode和resultCode識別區分的話,那麼onActivityResult就不會對不同的Activity返回結果做區分處理。