我正在尝试在“注册”按钮上设置setResult,但是什么也没有发生:
登录活动:
开始活动以获得结果:
Intent intent = RegisterActivity_.intent(this).get();
this.startActivityForResult(intent, REQUEST_CODE_USER_REGISTER);
活动结果
@OnActivityResult(REQUEST_CODE_USER_REGISTER)
protected void onResult(int resultCode) {
if (resultCode == RESULT_OK)
DashboardActivity_.intent(this).start();
else if (resultCode == RESULT_CANCELED) {
this.showDialogAlert("Unexpected error", null);
}
RegisterActivity:
this.setResult(RESULT_OK);
我正在使用AndroidAnnotations,但未使用this.finish()方法,因为它在AndroidManifest.xml的所有Activity中都设置了属性android:noHistory =“ true”。我还将在那里设置每个活动的父级。尝试删除了这些设置,并且setResult继续进行而没有任何工作。有人经历过吗?
最佳答案
我正在使用AndroidAnnotations,但未使用this.finish()方法,因为它在AndroidManifest.xml的所有Activity中都设置了属性android:noHistory =“ true”。
我认为您的问题就在这里。使用startActivityForRestult
时,预期的工作流程是启动一个新活动,执行一些工作,然后关闭该活动以返回上一个活动,并返回工作结果。因此,您不能在此处使用android:noHistory="true"
,因为它没有任何意义。
另外,如果查看Activity
的源代码,您会看到结果是从finish
方法传播的。