Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – Activity以startActivityForResult()开始,不返回调用Activity大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有3项活动 – A,B和C.

简而言之,活动A启动活动B,然后A也启动活动C并期望来自C的结果,但永远不会得到它.

这是应用程序工作流程:

>活动A在应用启动时启动,并在onCreate中启动活动B(不是结果,只是startActivity()).

public void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE);
    startActivity(new Intent(getApplicationContext(),ActivityB.class));
}

> Activity A然后在代码中稍后启动Activity C,这次使用startActivityForResult()获得结果,而Activity A也有onActivityResult.

Intent intent = new Intent(getApplicationContext(),ActivityC.class);
startActivityForResult(intent,0);

protected void onActivityResult(int requestCode,int resultCode,Intent data) {
   ...
}

> Activity C使用setResult()和finish()返回一些数据,这些数据应该返回到Activity A,因为Activity A调用了startActivityForResult().

Intent intent = new Intent();
intent.putExtra("encryption",encryption);
setResult(56,intent);
finish();

但是工作流程在步骤3中保持沉 – 活动A的onActivityResult从未被调用(也不是B的),即使活动A是从结果开始的C.不确定活动B是否妨碍了A和C的沟通,或者问题是什么.任何帮助深表感谢.

@H_674_24@

解决方法

我从来没有能够使用它,所以我最终使用Handler来将数据返回到必要的Activity.

更新:再次遇到这个问题之后,我发现这个不起作用的真正原因是因为我在清单中调用/接收活动A时有android:noHistory =“true”.删除android:noHistory =“true”修复它,但如果你需要它是真的,那么处理程序是一个很好的解决方法.

@H_674_24@ @H_674_24@

大佬总结

以上是大佬教程为你收集整理的android – Activity以startActivityForResult()开始,不返回调用Activity全部内容,希望文章能够帮你解决android – Activity以startActivityForResult()开始,不返回调用Activity所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。