【发布时间】:2017-05-30 10:31:10
【问题描述】:
我正在开发一个启动它自己的 Activity 的 Android 库。我需要让库的方法同步工作,这意味着我想等到启动的 Activity 完成然后返回一个值。我该怎么做?我尝试了不同的方法,但似乎没有做我想做的事。
这是图书馆启动活动的方法:
@Override
public Response admin(TypeEnumeration type) {
Intent i = new Intent(context, NewActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("type", type.value());
context.startActivity(i);
Response response = NewActivity.getResponse();
return response;
}
活动启动许多不同的片段并等待用户的交互。
我不想使用主动等待NewActivity.getResponse() 不为空。我尝试添加一个额外的对象以在其上使用wait()/notyfy(),但随后活动根本没有开始。
任何提示将不胜感激! 谢谢
【问题讨论】:
-
什么是响应?
-
onActivityResult() ?.. 问题有点混乱..
-
“我需要让库的方法同步工作”——你为什么认为你“需要”这样做?异步 API(回调、监听器、future、RxJava 风格的 observables 等)非常常见。
-
这是一个客户的要求:他们想调用一个库的方法并阻止他们的应用程序直到结果出来。
-
使用扩展
Application类的“MyApplication”类,并在类中设置一个单例或字段。您可以在 MyApplication 类中设置状态值以检查状态和值。您可以从任何您希望的活动中获取活动的此值和状态。
标签: java android android-activity synchronized