我有三个活动(例如活动A,活动B,活动C),活动A通过调用startActivityForResult()
方法调用活动B,然后活动B调用活动C.
活动A应在onActivityResult()
方法结束活动C和B时从活动C收到返回值。
对于扩展问题,可能需要更多活动步骤(A - > B - > C - > D - > - > ... - >返回A)以获得结果和概念问题是第一个活动应该从onActivityResult()
方法的上一个活动收到返回值。
过程
onActivityResult
方式接收C活动的结果。 我该怎么做?
应用场景
活动A应该能够识别活动D完成事件,因此在完成D时显示总得分。
答案 0 :(得分:2)
您可以使用startActivityForResults
从A调用活动B.然后对活动B执行相同操作以启动活动C.在活动B中覆盖onActivityResult
并将此意图发送到此方法中的活动A.例如:
@Override
public void onActivityResult(int req, int res, Intent result)
{
super.onActivityResult(req, res, result);
setResult(RESULT_CODE,result);
}
或者您可以在C类中创建自己的界面并在A类上实现它。
答案 1 :(得分:0)
在android中使用事件总线的经典场景你可以使用像otto或greenrobot或Rxjava这样的事件总线库,或者使用通过意图传递数据的经典方法。
答案 2 :(得分:0)
尝试使用intent从上一个活动调用第一个活动,如下所示
Intent intent = new Intent(LastActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("RESULT", "result to main activity");
startActivity(intent);