Gad*_*ady 7 android android-activity
我有3个活动- 一,乙,和Ç.
简而言之,活动A启动活动B,然后A也启动活动C并期望来自C的结果,但永远不会得到它.
这是应用程序工作流程:
活动A在应用启动时启动,并在onCreate中启动活动B(不是结果,只是startActivity()).
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
startActivity(new Intent(getApplicationContext(), ActivityB.class));
}
Run Code Online (Sandbox Code Playgroud)然后,Activity A也会在代码中启动Activity C,这次使用startActivityForResult()获得结果,而Activity A也有onActivityResult.
Intent intent = new Intent(getApplicationContext(), ActivityC.class);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
和
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
...
}
Run Code Online (Sandbox Code Playgroud)Activity C使用setResult()和finish()返回一些数据,这些数据应该返回到Activity A,因为Activity A调用了startActivityForResult().
Intent intent = new Intent();
intent.putExtra("encryption", encryption);
setResult(56, intent);
finish();
Run Code Online (Sandbox Code Playgroud)但是工作流程在步骤3中保持沉默 - 活动A的onActivityResult从未被调用(也不是B的),即使活动A是从结果开始的C.不确定活动B是否妨碍了A和C的沟通,或者问题是什么.任何帮助深表感谢.
Gad*_*ady 21
我从来没有能够使用它,所以我最终使用Handler来将数据返回到必要的Activity.
更新:再次遇到这个问题后,我发现这个不起作用的真正原因是因为我android:noHistory="true"在清单中有调用/接收活动A. 删除android:noHistory="true"固定它,但如果你需要它是真的,那么处理程序是一个很好的解决方法.
| 归档时间: |
|
| 查看次数: |
12661 次 |
| 最近记录: |