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的逻辑.首先,您为结果启动活动,新活动会将此意图发送到另一个新活动,直到您设置结果.我希望这对有同样问题的人有帮助.
| 归档时间: |
|
| 查看次数: |
5334 次 |
| 最近记录: |