我有一个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的任何结果。
即当我们尝试调用已经运行的结果活动时,活动结果不起作用。
请告诉我如何实现这一点。或者任何其他解决方法,只有当它不能用于已经运行的活动时。
答案 0 :(得分:0)
当我完成为结果启动的活动时,我打电话给例如
Intent intent = new Intent();
intent.putExtra("email", email);
act.setResult(RESULT_OK, intent);
act.finish();
我需要的返回值当然是电子邮件," act"是我在onCreate中创建的活动
act = this;