Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:将结果发送到清理Backback顶部的活动_Android_Android Activity_Back Stack - Fatal编程技术网

Android:将结果发送到清理Backback顶部的活动

Android:将结果发送到清理Backback顶部的活动,android,android-activity,back-stack,Android,Android Activity,Back Stack,我有3项活动:A、B、C 我希望活动的工作如下: A startActivityForResult B; B可以启动C或将结果发送给A; C可以返回B或将结果发送给A 当B向A发送结果时,B必须从Backback中删除。 当C向A发送结果时,B和C必须从backbackback中删除 我无法从C向A发送结果。这意味着A必须重新使用而不是重新创建,并且必须调用onActivityResult以处理结果: 我试过使用这段代码,但是会重新创建一个,并且不会调用onActivityResult publ

我有3项活动:A、B、C

我希望活动的工作如下:

A startActivityForResult B; B可以启动C或将结果发送给A; C可以返回B或将结果发送给A

当B向A发送结果时,B必须从Backback中删除。 当C向A发送结果时,B和C必须从backbackback中删除

我无法从C向A发送结果。这意味着A必须重新使用而不是重新创建,并且必须调用onActivityResult以处理结果:

我试过使用这段代码,但是会重新创建一个,并且不会调用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);
    }
}

有什么办法解决这个问题吗?谢谢你

是的,你可以解决这个问题

从活动A->startActivityForResultActivityB

从活动B->startActivityForResultActivityC

如果全部成功,则按以下方法设置结果

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
如果您在ActivityB中获得成功,请执行同样的操作。
在onActivityResult中,使用Activity.result\u OK和Activity.result\u cancelled检查结果是否成功或取消

是的,你可以解决这个问题

从活动A->startActivityForResultActivityB

从活动B->startActivityForResultActivityC

如果全部成功,则按以下方法设置结果

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
如果您在ActivityB中获得成功,请执行同样的操作。
在onActivityResult中,使用Activity.result\u OK和Activity.result\u cancelled检查结果是否成功或取消

张贴原始代码。上面的代码段不编译原始代码。上面的代码片段没有编译我在这个解决方案中已经想到的代码,但是我认为它不是那么平滑,因为在B中调用了'onActivityResult'。我想直接跳到A。但我刚才试过了,效果很好。B一刻也没有出现。非常感谢。好的,我已经考虑过这个解决方案,但我认为它不是那么平滑,因为在B中调用了'onActivityResult'。我想直接跳到A。但我刚才试过了,效果很好。B一刻也没有出现。非常感谢。