【发布时间】:2012-03-13 17:29:08
【问题描述】:
我有 3 个活动 - A、B 和 C。
简而言之,Activity A 启动 Activity B,然后 A 也启动 Activity C 并期望 C 得到结果,但从未得到它。
这是应用程序的工作流程:
-
Activity A 在应用启动时启动,并在 onCreate 中启动 Activity 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 的交流或问题可能是什么。非常感谢任何帮助。
【问题讨论】:
-
好难理解....Activity B然后使用Activity A进行web服务调用,如果Activity A判断需要登录,就启动Activity C
-
已编辑问题以简化问题。基本上 Activity A 启动 Activity B,然后 A 也启动 Activity C 并希望从 C 获得结果,但从未得到它。
-
startActivityforresult 进入 B 活动它的工作你从哪个活动开始并返回 onactivityresult
-
我在A中调用startActivity启动B,在A中调用startActivityForResult启动C,所以C应该返回结果给A。
-
你肯定会在 A 中给出 onActivityResult 方法