寫在前面,startActivityForResult如何使用大家應(yīng)該都熟悉了,今天說一下此篇文章的使用場(chǎng)景;
1.A這個(gè)Activity跳轉(zhuǎn)到B這個(gè)Activity,然后B這個(gè)Activity要跳轉(zhuǎn)到C這個(gè)Acitvity;
2.要求C這個(gè)頁面中進(jìn)行某項(xiàng)操作成功才可以finish(),然后直接回到A這個(gè)ACtivity(此時(shí)B這個(gè)ACtivity也是finish的),同時(shí)回到A這個(gè)Activity之后需要重新請(qǐng)求數(shù)據(jù)或做其他操作;
3.若C中操作未成功,那么c點(diǎn)擊back返回的是b這個(gè)Actvity
解決步驟
1.A這個(gè)acitivty跳轉(zhuǎn)到B使用
startActivityForResult(intent,201);同時(shí)在onActivityResult方法中,進(jìn)行判斷,執(zhí)行需要的操作;
2.B中跳轉(zhuǎn)到Acitvity也使用
startActivityForResult(intent,201);
同時(shí)在onActivityResult方法中,進(jìn)行判斷,執(zhí)行一下操作
if(resultCode==RESULT_OK){
if(requestCode==201){
Intent intent =newIntent();
setResult(Activity.RESULT_OK,intent);
finish();
}
}
3.c這個(gè)activity操作成功之后需要返回到A這個(gè)activity
Intent intent =newIntent();
setResult(RESULT_OK, intent);
finish();
如此,可以滿足上面提出的需求;當(dāng)然也可以使用廣播或者EventBus等進(jìn)行解決;
若有不對(duì)之處,還請(qǐng)通知我一下,若有學(xué)習(xí)交流的意向,可以加我創(chuàng)建的群;479192454,共同學(xué)習(xí),共同成長.