我从startActivityForResult
发送ActivityA
到ActivityB
private Uri saveFileToDrive() {
Intent saveToDriveInten = new Intent(this, GoogleDriveProxeyActivity.class);
saveToDriveInten.putExtra("fileUri", mCurrentImageUri.toString());
startActivityForResult(saveToDriveInten, SAVE_TO_DRIVE);
return null;
}
并在ActivityB
我看到:
Intent resultIntent = new Intent();
resultIntent.putExtra("driveUri", file.getAlternateLink());
setResult(Activity.RESULT_OK, resultIntent);
为什么我不回onActivityResult
的{{1}}?
实际上我不确定在
之后执行了什么代码 ActivityA
我以为我失踪了setResult(Activity.RESULT_OK, resultIntent);
但是这让我再次参加了另一个家长活动。
答案 0 :(得分:5)
是的,您需要在finish()
之后致电setResult()
。
调用setResult()
不会关闭或以其他方式结束当前活动,因此用户仍然可以看到它。在另一个Activity完成之前,不会调用onActivityResult()
。
答案 1 :(得分:3)
我错过了完成()
是。在finish()
setResult()
Intent resultIntent = new Intent();
resultIntent.putExtra("driveUri", file.getAlternateLink());
setResult(Activity.RESULT_OK, resultIntent);
finish();
[根据文档](http://developer.android.com/reference/android/app/Activity.html#setResult(int,android.content.Intent))
调用此方法设置您的活动将返回其调用者的结果。
注意“set”这个词。您仍然需要将控制权返回给接收Activity
。