use*_*805 1 android android-activity back-stack
我有3个活动:A,B,C.
我希望活动的工作方式如下:
一个startActivityForResult B; B可以启动C或将结果发送给A; C可以返回B或将结果发送给A.
当B将结果发送给A时,必须从Backstack中删除B. 当C将结果发送到A时,必须从Backstack中删除B和C.
我无法从C向A发送结果.这意味着A必须重新发送(未重新发送),并且必须调用onActivityResult()来处理结果:
我已尝试使用此代码,但重新创建了A并且未调用onActivityResult()!
public class C extends Activity{
sendResultToA(){
Intent i = new Intent(getActivity(), A.class);
i.putExtra("dataBean", dataBean);
i.putExtra("args", "save");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().setResult(Activity.RESULT_OK, i);
startActivity(i);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法可以解决这个问题?谢谢
是的,你可以解决这个问题,
From Activity A -> startActivityForResult(ActivityB)
From Activity B -> startActivityForResult(ActivityC)
如果所有成功都按照以下方式设置结果.
Intent i = new Intent();
i.putExtra("dataBean", dataBean);
i.putExtra("args", "save");
setResult(Activity.RESULT_OK,i); //pass your intent
finish(); // Call finish to remove ActivityC from the stack
Run Code Online (Sandbox Code Playgroud)
如果您在ActivityB中获得成功,那么也要这样做.在onActivityResult检查结果是否成功或取消的使用 Activity.RESULT_OK和Activity.RESULT_CANCELED.
| 归档时间: |
|
| 查看次数: |
457 次 |
| 最近记录: |