Android在片段中检测活动何时完成

Android在片段中检测活动何时完成,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我的主要活动启动一个片段,这个片段启动我的第二个活动,当第二个活动完成时,她启动第三个活动 我希望我的主要活动在第三十次活动结束时进行检测 我尝试使用onActivityResult,这是我完成我的SecondActivity时的代码 Intent intent = new Intent(); setResult(Utils.RESULT_FROM_ORDER_FINISH, intent); OrderFinishActivity.this.finish(); OrderFin

我的主要活动启动一个片段,这个片段启动我的第二个活动,当第二个活动完成时,她启动第三个活动

我希望我的主要活动在第三十次活动结束时进行检测

我尝试使用onActivityResult,这是我完成我的SecondActivity时的代码

  Intent intent = new Intent();
  setResult(Utils.RESULT_FROM_ORDER_FINISH, intent);
  OrderFinishActivity.this.finish();
  OrderFinishActivity.this.overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
在我的主要活动中,我得到了onActivityResult

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Utils.RESULT_FROM_ORDER_FINISH) {
        // do thing
    }
}
该片段启动了第二个活动

Intent mainIntent = new Intent(activity, activityClass);
activity.startActivityForResult(intent, requestCode);
第二个活动使用相同的代码启动第三个活动


但是onActivityResult不是触发器,我认为片段获得了信息,我希望他将信息传输到主活动

如果您从片段启动第二个活动,只需替换即可

startActivityForResult(intent, Defines.FILTER_BY_CATALOGUE);

替换

setResult(Utils.RESULT_FROM_ORDER_FINISH, intent);
// 1st parameter is not request code but result code


在第二个活动中

如果您从片段调用
startActivityForResult
,并且希望将活动触发器设置为ActivityResult上的父活动触发器,则应启动新活动获取父活动实例:

//This way will work
getActivity().startActivityForResult(intent,Utils.RESULT_FROM_ORDER_FINISH);

//This way will not
startActivityForResult(intent,Utils.RESULT_FROM_ORDER_FINISH);
更新问题

你能做的就是

1 > startActivityForResult(SecondActivity).
2 > Finish SecondActvity set result_ok.
3 > In OnActivityResult of FirstActivity startActivityForResult(ThirdActivity).
4 > Finish ThirdActvity set result_ok. 
5 > In OnActivityResult of FirstActivity  do your stuff.

这里的要点是不要从第二个活动启动第三个活动,而是从第一个活动启动它。

如何启动第二个活动?您是否正在使用startActivityForResult(…)?从中启动第二个活动。。这是碎片吗。?请同时分享该代码您还没有启动TactivityForResult(),那么您的活动A如何调用您的onActivityResult()方法我编辑了我的帖子谢谢onActivityResult现在是触发器,但是请求代码具有良好的值,但我的resultCode始终为0,您是否按照我提到的setResult(RESULT_OK,intent)执行了相同的操作;是的,我只是做了一个编辑,我在两个其他活动之间有一个其他活动,可能这会阻止结果。决定不要只编辑原始问题的问题,并更改整个要求,只需问其他问题。检查我的其他答案
//This way will work
getActivity().startActivityForResult(intent,Utils.RESULT_FROM_ORDER_FINISH);

//This way will not
startActivityForResult(intent,Utils.RESULT_FROM_ORDER_FINISH);
1 > startActivityForResult(SecondActivity).
2 > Finish SecondActvity set result_ok.
3 > In OnActivityResult of FirstActivity startActivityForResult(ThirdActivity).
4 > Finish ThirdActvity set result_ok. 
5 > In OnActivityResult of FirstActivity  do your stuff.