写在前面,startActivityForResult如何使用大家应该都熟悉了,今天说一下此篇文章的使用场景;
1.A这个Activity跳转到B这个Activity,然后B这个Activity要跳转到C这个Acitvity;
2.要求C这个页面中进行某项操作成功才可以finish(),然后直接回到A这个ACtivity(此时B这个ACtivity也是finish的),同时回到A这个Activity之后需要重新请求数据或做其他操作;
3.若C中操作未成功,那么c点击back返回的是b这个Actvity
解决步骤
1.A这个acitivty跳转到B使用
startActivityForResult(intent,201);同时在onActivityResult方法中,进行判断,执行需要的操作;
2.B中跳转到Acitvity也使用
startActivityForResult(intent,201);
同时在onActivityResult方法中,进行判断,执行一下操作
if(resultCode==RESULT_OK){
if(requestCode==201){
Intent intent =newIntent();
setResult(Activity.RESULT_OK,intent);
finish();
}
}
3.c这个activity操作成功之后需要返回到A这个activity
Intent intent =newIntent();
setResult(RESULT_OK, intent);
finish();
如此,可以满足上面提出的需求;当然也可以使用广播或者EventBus等进行解决;
若有不对之处,还请通知我一下,若有学习交流的意向,可以加我创建的群;479192454,共同学习,共同成长.
网友评论
2.用移除栈的方式,感觉这个是最直接的了