startActivityForResult是一個用于啟動另一個Activity并且希望能夠在啟動的Activity結束后獲取返回結果的方法。它的用法如下:
在啟動Activity的地方調用startActivityForResult方法,傳入一個Intent對象和一個請求碼requestCode。Intent對象用于指定要啟動的Activity,requestCode用于標識這次啟動的請求。
在被啟動的Activity中,在需要返回結果的地方調用setResult方法,傳入一個結果碼resultCode和一個包含結果數據的Intent對象。resultCode用于標識這次返回的結果,Intent對象用于攜帶返回的數據。
然后被啟動的Activity會被銷毀,返回到啟動它的Activity,并調用啟動Activity時傳入的onActivityResult方法,該方法會接收到返回的結果數據。onActivityResult方法中可以通過判斷requestCode和resultCode來處理特定的返回結果。
通過使用startActivityForResult方法,我們可以實現不同Activity之間的交互和數據傳遞。例如,啟動一個登錄Activity并等待用戶登錄完成后返回登錄結果,或者啟動一個選擇圖片的Activity并等待用戶選擇圖片后返回選擇的圖片的路徑等等。
需要注意的是,當調用startActivityForResult方法啟動一個Activity時,如果啟動的Activity設置了android:launchMode為singleInstance或singleTask,那么該Activity將無法接收到返回結果。