【问题标题】:Getting result of an Activity synchronously同步获取 Activity 的结果
【发布时间】:2014-08-19 00:31:51
【问题描述】:

我想启动一个 Activity 并同步获得结果(我拥有这两个 Activity)。 Context.startActivityForResult 是异步的。而且, Instrumentation.startActivitySync 只能在进程内工作。我需要它像 startActivitySync 一样工作,但需要跨进程。

是否有 API 可以做到这一点?如果不是,Android 的哪个 IPC 机制会以同步方式工作……或者至少我可以模仿它同步工作?

【问题讨论】:

    标签: android android-activity ipc


    【解决方案1】:

    不,没有。 Instrumentation 也不是一个好主意。要么将代码放入 onActivityResult,要么(如果在非主线程上)在调用 startActivity 后等待信号量并在 onActivityResult 中释放信号量。然后处理信号量释放后的结果。

    【讨论】:

    • 那么,开始活动,设置等待,然后在收到响应时调用通知?那应该行得通。我唯一担心的是获得 ANR,因为我不会调用 startActivityForResult,因为我不希望被调用的 Activity 关闭。我会让它返回值并在 onNewIntent 中捕获它。然后调用 notifyAll()。
    【解决方案2】:

    为什么不在第一个活动中添加一个静态变量并从第二个活动修改这个变量?还是一个函数?然后就可以处理了。或者您还有其他需求?

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-27
      • 1970-01-01
      • 2011-11-03
      • 2015-10-21
      • 1970-01-01
      相关资源
      最近更新 更多