在一项 Activity (例如 A)中,我必须根据另一项 Activity (B)的结果来执行特定任务。我使用 startActivityForResult() 启动 Activity B。伪代码是这样的: (在 Activity 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
现在我面临的问题是,启动 Activity B 后,它不会等待 B 的结果到达。而是继续并使用 bool 结果的默认值。 有什么解决办法吗?
如果这个特定的 block 在另一个线程中,我可以编写一个同步块(synchronized block)并 启动 Activity B 后发出 wait(),然后在 onActivityResult() 中发出 notification()。 但由于只有一个线程,这不是一个选择,对吗?
应该提到,activityB 接受用户输入“是/否”并返回该输入。因此在启动时,结果不会立即可用
最佳答案
Any solution?
将代码 list 中的最后两行放入 onActivityResult()
中,如 described in the Android documentation .
更重要的是,您还需要重写 ActivityB,以实际遵循使用 setResult()
将结果传递回 ActivityA 的说明。
关于android - 等待另一项 Activity 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10095402/