1、startActivityForResult的使用場景是什么?onActivityResult回調(diào)里面的resultCode和requestCode含義是什么?
????????當Activity A 打開新的Activity B時,如果A需要在B關(guān)閉后獲取B返回的數(shù)據(jù)時, A需要調(diào)用startActivityForResult(Intent?intent,?int?requestCode)方法打開新的Activity B,新的Activity B關(guān)閉后會向前面的Activity A傳回數(shù)據(jù),為了得到傳回的數(shù)據(jù),必須在前面的Activity A中重寫onActivityResult(int?requestCode,?int?resultCode,?Intent?data)。
特別需要注意的是,requestCode必須 >= 0,否則此類效果失效,其效果將變成startActivity()效果。
應(yīng)用場景:比如最常用的拍照功能。
onActivityResult中回調(diào)里面的resultCode和requestCode含義是什么?
resultCode:用于與startActivityForResult()中的requestCode中值進行比較判斷,以便確認返回的數(shù)據(jù)是從哪個Activity返回的。
requestCode :該參數(shù)由被打開的Activity 通過其setResult()方法返回。適用于多個activity都返回數(shù)據(jù)時,來標識到底是哪一個Activity返回的值。
data:一個Intent對象,帶有返回的數(shù)據(jù)??梢酝ㄟ^data.getXxxExtra( )方法來獲取指定數(shù)據(jù)類型的數(shù)據(jù)。
2、Activity A啟動B的時候,在B中何時該執(zhí)行setResult ?setResult可以位于Activity的finish方法之后嗎?
在跳轉(zhuǎn)到原Activity時調(diào)用這個方法把Activity B想要返回的數(shù)據(jù)返回到主Activity。
setResult()不可以位于Activity的finish方法之后。