startActivityForResult usage for multiple activities

sip*_*rus 9 android

i use startActivityForResult for two activities like this

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

but i must use this logic for 4 or more activities.

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

but this does not work.

sip*_*rus 41

解:

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
Run Code Online (Sandbox Code Playgroud)

这是FLAG_ACTIVITY_FORWARD_RESULT的逻辑.首先,您为结果启动活动,新活动会将此意图发送到另一个新活动,直到您设置结果.我希望这对有同样问题的人有帮助.