android之activity 跨Activity傳result

重要的標誌:INTENT_FLAG_FORWORD_RESULT

這個標誌有一個特殊的作用,就是能夠跨activity傳遞result.。比如A1->A2,此時如果從A2中啓動A3,並且設置的啓動標誌爲FORWORD_RESULT,那麼A3運行時,可以在A3中調用setResult,然後在finish,其結果會從A3直接返回到A1,並且A1會得到A3中setResult中的result。滿足這種調用,啓動方式如下

A1(startActiviityForResult)-->A2(startActivity)->A3;A2不能使用forResult的方式啓動,否則會導致衝突Start_FORWORD_AND_REQUEST_CONFLICT


INTENT_FLAG_NEW_TASK 和啓動模式SINGLE_INSTANCE以及SINGLE_TASK都不能使用startForActivityResult;因爲啓動activity都會分配一個flags,而android認爲不同Task的Activity之間是不能傳遞數據的,所以不能使用NEW_TASK;而SINGLE_INSTANCE以及Single_Task啓動之前若目標Activity不存在則會分配NEW_TASK標誌,所以ForResult不生效

發佈了68 篇原創文章 · 獲贊 38 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章