我有一个对象Task
(请参阅com.google.android.gms.tasks
)
我需要等到它在返回结果之前完成所有操作。 所以我试图创建一个虚拟对象
final static Object lock=new Object();
用作锁定,我在方法中添加了
synchronized(lock){
lock.wait();
}
这样它就不会在任务完成之前返回值
在任务的lock.notifyAll
侦听器中调用onSuccess()
(当任务正确结束时调用此侦听器)。
但不幸的是整个App冻结了。
为什么会这样?
我应该如何处理任务完成?
(请注意,任务不像AsyncTask
)
答案 0 :(得分:0)
有一种简单的方法可以同步运行任务。
Tasks.await(yourTask);
但要确保在后台线程中调用它。