關(guān)于startActivityForResult

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方法之后。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容