Using startActivityForResult for multiple actions

I am using startActivityForResult for two actions like this

Activity A -> startActivityForResult(ActivityB,0) -> Activity B -> setresult(10); finish(); -> Activity A -> if(result==10) {dofunction(); } 

but I have to use this logic for 4 or more operations.

 Activity A -> startActivityForResult(ActivityB,0) -> Activity B -> finish(); -> Activity C -> finish(); -> Activity D -> setresult(10); finish(); -> Activity A -> if(result==10) {dofunction(); } 

but it does not work.

+5
source share
2 answers

DECISION:

 Activity A -> startActivityForResult(activityB,0); Activity B -> activityCintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(activityCintent); finish(); Activity C -> activityDintent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); startActivity(activityDintent); finish(); Activity D -> setresult(10); finish(); Activity A -> if(result==10) {dofunction(); } YEPPP 

this is the logic of FLAG_ACTIVITY_FORWARD_RESULT. First you start an action for the result, a new activity transfers this intention to another new action until you set the result. Hope this will be helpful for those facing the same issue.

+21
source

After naming in startActivityForResult(ActivityB,0) we issue a request code for the specified activity, i.e. startActivityForResult(ActivityB,REQUEST_CODE_FOR_ACTIVITYB) . with request code - any integer. Then in onActivityResult check each request code and implement your logic

+1
source

Source: https://habr.com/ru/post/1204331/


All Articles