startActivityForResult理解筆記

今天進一步理解了startActivityForResult(Intent intent, int requestCode);onActivityResult(int requestCode, int resultCode, Intent data);和setResult(int resultCode, Intent data);主要2點,怎麼用和調用誰的。

1.一個activity調用startActivityForResult ,進入一個新的activity界面,然後新的activity銷燬了,原activity的onActivityResult被調用,其中requestCode爲開始調用startActivityForResult設置的requestCode,第二個和第三個參數爲新activity在調用finish方法之前調用setResult方法設置的(注意此處一定要在finish之前setResult)。

2.fragment和activity到底誰調用onActivityResult方法:這個要看是誰的context啓動的startActivityForResult方法,舉例說假如是fragment想讓父親activity的onActivityResult被調用可以使用this.getActivity().startActivityForResult(Intent intent, int requestCode);

有時候跨activity傳遞數據還是有點麻煩,比如abc3個頁面,a到b到c,c啓動b就銷燬,c銷燬,a並不會調用onActivityResult,所有有時候還是寫dialog吧,典型的場合是activity 和dialog同時顯示 要先dialog.dismiss() 後activity.finish() 如果直接finish() 會出錯 但不影響功能。還有就是使用Activity加Fragment的模式,推薦使用Fragmentation。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章