簡單理解startActivityForResult方法
startActivityForResult常常用來打開一個新的Activity然後返回數據到源Activity,之前對這個方法一直不甚了解,後來試驗了一下知道了用法;
一、調用方法需要傳入的參數:void startActivityForResult(Intent intent,int RequeCode)一個帶有action的Intent對象,一個int類型請求碼RequestCode;
二、得到返回數據的時機:當新打開的Activity被銷毀的時候會回調源Activity的onActivityResult方法;只有調用startActivityForResult的Activity才會執行回調;
三、requestCode的作用:
1)同一個請求Activity分別打開不同目標Activity,根據返回的requestCode來判斷是哪個Activity被關閉;(常用)
2)同一個請求Activity的不同按鈕打開同一個目標Activity,根據返回的requestCode來判斷該執行什麽操作;(例如一篇文章有查看和修改兩個按鈕都可以到文章內容頁面,點擊關閉時根據requestCode來判斷要不要對內容進行更新);
3)不同的請求Activity都設置了onActivityResult對同一個requestCode的處理,此時只有調用startActivityForResult的請求Activity的onActivityResult方法能執行;說requestCode是用來判斷從哪個Activity發起的請求的純屬誤導;
4)當requestCode設置為-1時不會執行回調方法;
四、resultCode的作用:
1)設置一個返回值表示返回的不同結果,例如RESULT_OK,RESULT_CANCEL;(常用)
2)當requestCode不能區分目標Activity的時候,目標Activity可以使用setResult方法來指定不同的resultCode幫助區分;
簡單理解startActivityForResult方法