等待另一个活动的结果

Ala*_*hya 2 concurrency android synchronization android-activity

在一项活动(比如说A)中,我必须根据另一项活动(B)的结果执行某项任务.我使用startActivityForResult()启动活动B. 伪代码是这样的:(在活动A中)

//Statements
//startActivityForResult(activityB)
//get the result in some local variable for activity A. result is a boolean
//if(result==true) do something
//else do something else
Run Code Online (Sandbox Code Playgroud)

现在我面临的问题是,在启动活动B之后,它不会等待结果从B到达.相反,它继续并使用布尔结果的默认值.有解决方案吗

如果这个特定的块在另一个线程中,我可以写一个synchronized块并在启动活动B后发出wait(),然后在onActivityResult()中发出notify().但由于只有一个线程,这不是一个选项吗?

应该提到activityB接受用户输入Yes/No并返回该值.因此,在启动时,结果不会立即可用

Com*_*are 5

有解决方案吗

将代码清单中的最后两行放入onActivityResult(),如Android文档中所述.

更重要的是,您还需要重写activityB以实际遵循使用说明setResult()将结果传递回activityA的说明.