android - 等待另一项 Activity 的结果

标签 android android-activity concurrency synchronization

在一项 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/

相关文章:

android - EditText 在 ScrollView 内不可滚动

android - 自定义设备的默认音量条

android - 如何在 android 中使用不同的应用程序实现对我的应用程序的导航?

android - 如何以高频率将数据从服务传递到 Activity

android - Android中切换标签页时,它是由什么组成的?

sql-server - 管理 SQL Server 中的并发

android - 实现无尽的 RecyclerView

java - Android PayPalActivity 不是全屏

java - 为什么当队列溢出且所有线程都忙时拒绝处理程序不调用

java - 如何从线程中获取反馈? java