我有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的沟通,或者问题是什么.任何帮助深表感谢.