OnActivityResult未调用已经运行的活动

时间:2014-11-26 11:13:58

标签: android android-intent flags onactivityresult start-activity

我有一个3层的应用程序。 A,B,C 。 A和B是固定的,C可以是多个活动中的任何一个。

应用程序通常在A> B> C方向上起作用。 A 使用startActivityForResult方法调用 B B 也会使用startActivityForResult调用 C C 的结果将在 B 中处理并传回 A 通过所有图层上的onActivityResult方法。

它工作正常,但我不知何故希望活动A直接调用C(我已经实现了一个线程在后台执行操作)

Intent i = new Intent("com.intentntfiltername.ACVITIY-C");
startActivity(i);
然后,

C通过恢复它切换回A. 在此之后,A将呼叫B以获得结果。 然后B将使用

调用C.
intentName.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivityForResult(intentName, requestCodeVariable);

不会创建活动C的新实例,而是恢复旧活动。

问题是当我退出C后返回B时,永远不会调用onActivityResult。它只是恢复B活动而不处理来自C的任何结果。

即当我们尝试调用已经运行的结果活动时,活动结果不起作用。

请告诉我如何实现这一点。或者任何其他解决方法,只有当它不能用于已经运行的活动时。

1 个答案:

答案 0 :(得分:0)

当我完成为结果启动的活动时,我打电话给例如

Intent intent = new Intent();
intent.putExtra("email", email);
act.setResult(RESULT_OK, intent);
act.finish();

我需要的返回值当然是电子邮件," act"是我在onCreate中创建的活动

act = this;