使用startActivityForResult()方法可以啟動一個Activity,并且在該Activity關閉后,可以獲取到返回的結果。
以下是使用startActivityForResult()方法的步驟:
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
Intent returnIntent = new Intent();
returnIntent.putExtra("result", resultData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 處理返回結果
}
}
注意事項:
請求碼(requestCode)是一個整型值,用于標識啟動的Activity,可以自定義。
setResult()方法用于設置返回結果,第一個參數為結果碼(resultCode),一般使用Activity.RESULT_OK表示成功。
可以通過Intent對象的putExtra()方法傳遞額外的數據,返回結果時可以通過getXXXExtra()方法獲取。
如果被啟動的Activity意外關閉(如崩潰),則onActivityResult()方法可能不會被調用,需要注意處理這種情況。