這個返回結果時設置的行動的目的是從Training for Android developers通過的setResult
//Create intent to deliver some kind of result data
Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri"));
setResult(Activity.RESULT_OK, result);
finish();
示例代碼當我們從子活動返回一個結果,通常我們只需要設置額外的或URI數據。這裏指定一個自定義動作的目的是什麼? 更新:
假設我們要打開圖庫應用程序來選擇要在我們的應用程序中使用的圖像。
調用圖庫應用程序
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent,PICK_IMAGE_REQUEST);
返回結果
Intent result = new Intent();
result.setData(_Uri.parse("content://result_uri");
setResult(Activity.RESULT_OK, result);
finish();
處理結果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_IMAGE_REQUEST) {
// Make sure the request was successful
if (resultCode == RESULT_OK) {
Uri imageUri = data.getData();
// Do something with the image here
}
}
我沒有在示例代碼中設置 「com.example.RESULT_ACTION」以上。
我的問題是在這裏指定一個自定義操作的目的,在這種情況下設置「com.example.RESULT_ACTION」。我不明白爲什麼我們需要設置,我認爲這不是必要的。 – user3591494
@ user3591494這是沒有必要的,讓我更新答案 –
非常感謝你,Pavneet。我認爲這已經解決了問題。但是我仍然不完全明白爲什麼它對兩個應用程序有用而不是兩個操作,你能詳細說明還是給我另一個例子? – user3591494