在Android開發中,當我們使用startActivityForResult()
方法啟動一個新的Activity并期望獲取返回結果時,可能會遇到一些異常情況
檢查Activity是否存在:確保你要啟動的Activity已經在AndroidManifest.xml文件中聲明。如果沒有聲明,將會導致ActivityNotFoundException
。
捕獲異常:在調用startActivityForResult()
之前,可以使用try-catch
語句捕獲可能出現的異常。這樣,在異常發生時,可以采取相應的措施,例如顯示錯誤提示或者進行其他操作。
try {
Intent intent = new Intent(this, TargetActivity.class);
startActivityForResult(intent, REQUEST_CODE);
} catch (ActivityNotFoundException e) {
// 處理異常,例如顯示錯誤提示
Toast.makeText(this, "無法啟動目標Activity", Toast.LENGTH_SHORT).show();
}
onActivityResult()
方法中,需要檢查返回的結果碼(resultCode
)和請求碼(requestCode
)。只有當結果碼為RESULT_OK
且請求碼與發送時的請求碼相匹配時,才處理返回的數據。@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 處理返回的數據
if (data != null) {
// 獲取返回的數據并進行處理
}
} else {
// 處理其他情況,例如用戶取消操作或者發生錯誤
}
}
通過以上方法,可以有效地處理startActivityForResult()
的異常情況,提高應用程序的健壯性和用戶體驗。