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并返回该值.因此,在启动时,结果不会立即可用
有解决方案吗
将代码清单中的最后两行放入onActivityResult()
,如Android文档中所述.
更重要的是,您还需要重写activityB以实际遵循使用说明setResult()
将结果传递回activityA的说明.
归档时间: |
|
查看次数: |
7235 次 |
最近记录: |