Java onActivityResult在“finish()”之后未被调用-正在调用被调用的活动

Java onActivityResult在“finish()”之后未被调用-正在调用被调用的活动,java,android,androidx,Java,Android,Androidx,我知道,我知道。。。这个问题已经解决了。这些解决方案都不适合我 以下是我如何尝试做到这一点 从LoginActivity调用活动: 私有void loginsucessfulloggedinUserView模型{ String welcome=String.formatgetStringR.String.welcome,model.getDisplayName; Toast.makeTextgetApplicationContext,welcome,Toast.LENGTH\u LONG.sho

我知道,我知道。。。这个问题已经解决了。这些解决方案都不适合我

以下是我如何尝试做到这一点

从LoginActivity调用活动:

私有void loginsucessfulloggedinUserView模型{ String welcome=String.formatgetStringR.String.welcome,model.getDisplayName; Toast.makeTextgetApplicationContext,welcome,Toast.LENGTH\u LONG.show; Intent Intent=新Intent此,PinCodeActivity.class; if!model.isNewUser{ intent.putextramport,输入您的pin; StartActivityForresultint,102; }否则{ intent.putextramport,输入pin; StartActivityForresultint,103; } } 然后在PinCodeActivity中称为Activity

私人空间{ 意向=新意向; intent.putExtrahash,pin.getValue; setResultActivity.RESULT_正常,意图; System.out.println=====================================================;//已打印 完成 } 然后LoginActivity.onActivityResult EDIT:idk,如果重要,但在我的例子中,super.onActivityResult是第一个调用还是最后一个调用并不重要。两者的结果相同

@凌驾 ActivityResultant请求代码、int-resultCode、意图数据上的受保护无效{ System.out.printlnrequestCode;//未打印 如果resultCode==Activity.RESULT\u正常 开关请求代码{ 案例101: 试一试{ //此调用返回的任务始终已完成,无需附加 //听众。 Task Task=GoogleSignIn.GetSignedAccountFromIntentData; GoogleSignInAccount account=task.getResultApieException.class; loginViewModel.loginaccount; }捕捉小蜂{ //ApiException状态代码表示详细的故障原因。 Log.wTAG,signInResult:失败代码=+e.getStatusCode; } 打破 案例102: System.out.printlndata.getStringExtrahash; 打破 案例103: System.out.printlndata.getStringExtrahash; 打破 } super.onActivityResultrequestCode、结果代码、数据; } 这就是LoginActivity的定义

公共类LoginActivity扩展了AppCompatActivity{ 私有静态最终字符串标记=登录; @注入 DaggerViewModelFactory; @注入 AppProperties AppProperties; 私人LoginView模型LoginView模型; 私有ProgressBar加载ProgressBar; 私有EditText用户名EditText; 私有EditText密码EditText; 私人按钮登录按钮; 私人登录按钮谷歌登录按钮; 私人谷歌签名客户端谷歌签名客户端; //更多代码。。。 } 最后是如何定义PinCodeActivity

公共类PinCodeActivity扩展AppCompatActivity实现View.OnClickListener{ 未选中私有列表; 选中私有列表=新建链接列表; 专用PinCode引脚=新PinCode; //更多代码。。。 } 这是航海日志

2019-11-09 19:26:08.000 2462-2535/com.example.finance D/EGL_仿真:eglMakeCurrent:0x7fb761429ae0:ver 30 tinfo 0x7fb761418f40 2019-11-09 19:26:08.009 2462-2535/com.example.finance D/EGL_仿真:eglMakeCurrent:0x7fb761429ae0:ver 30 tinfo 0x7fb761418f40 2019-11-09 19:26:10.506 2462-2462/com.example.finance I/System.out:=================================== 2019-11-09 19:26:11.069 2462-2535/com.example.finance D/EGL_仿真:eglMakeCurrent:0x7fb761429ae0:ver 30 tinfo 0x7fb761418f40 请注意,包含所有===的行在finish之前和setResult之后打印,这意味着它能够设置结果。 此外,查看这些日志时,我没有看到错误/崩溃的迹象

我的问题是,正如标题所说,onActivityResult不是从我用startActivityForResult开始的活动中调用的

也许这只是你表达的方式,但是你的代码没有澄清,所以让我们澄清一下。不应从[您]启动的活动调用onActivityResult。onActivityResult在最初从中调用startActivityForResult的活动中调用

因此,您的onActivityResult应该在LogInActivity中声明,而不是在PinCodeActivity中声明


希望有帮助

Intent Intent=new IntentLoginActivity.this,PinCodeActivity.class;我觉得这应该work@PavanNagaraja我尝试过,不幸的是没有运气…我不知道为什么没有调用onActivityResult:|首先查看logcat,在设置结果之前,可能孩子的活动崩溃了。第二步验证是否使用调试器调用了onActivityResult。第三,不要使用System.out,使用登录
tead@3我用日志和更多细节更新了我的帖子。我还通过调试验证了onActivityResultis not calledI将澄清我的帖子。我没有正确理解onActivityResult是如何调用的。但事实上,它是在LoginActivity中声明的。如果可以的话,我建议您将完整的代码发布到这两个活动中,以减轻混淆。此外,将项目剥离到最低限度,以说明问题并共享整个项目。