gpt4 book ai didi

android - Activity 以 startActivityForResult() 开始,不返回调用 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:27 28 4
gpt4 key购买 nike

我有 3 个 Activity - ABC

简而言之,Activity A 启动了 Activity B,然后 A 也启动了 Activity C 并期望 C 的结果,但从未得到它。

这是申请流程:

  1. Activity A 在应用程序启动时启动,并在 onCreate 中启动 Activity B(不是为了结果,只是 startActivity())。

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    startActivity(new Intent(getApplicationContext(), ActivityB.class));
    }
  2. 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) {
    ...
    }
  3. Activity C 使用 setResult() 和 finish() 返回一些数据,这些数据应该返回给 Activity A,因为 Activity A 调用了 startActivityForResult()。

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

但是 工作流程在第 3 步陷入静默 - Activity A 的 onActivityResult 从未被调用(B 也没有被调用),即使 Activity A 是开始 C 的结果。不确定 Activity B 是否妨碍了 A 和 C 的沟通,或者可能是什么问题。非常感谢任何帮助。

最佳答案

我一直无法让它工作,所以我最终使用 Handler 来将数据返回到必要的 Activity。

更新:再次遇到这个问题后,我发现它不起作用的真正原因是因为我有 android:noHistory="true"在 list 中调用/接收 Activity A。删除 android:noHistory="true" 修复了它,但如果您需要它为真,那么处理程序是一个很好的解决方法。

关于android - Activity 以 startActivityForResult() 开始,不返回调用 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9689001/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com