改用registerForActivityResult
寫一個ActivityResultLauncher<Intent> askforResult物件
ActivityResultLauncher<Intent> askforResult = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>(){
@Override
public void onActivityResult(ActivityResult result) {
if (result.getResultCode() == Activity.RESULT_OK){
Intent it = result.getData();
Uri uri = it.getData();
Log.d(TAG, uri.toString());
}
}
}
);
呼叫時改用
Intent it = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
askforResult.launch(it);