Android:如何等待回调发生

Android:如何等待回调发生,android,service,junit,wait,Android,Service,Junit,Wait,目标:启动服务、等待连接就绪然后返回的方法 此构造函数将启动(GPS)服务。我需要确保在从构造函数返回之前调用了onServiceConnected: 为什么??我正在编写Android Junit测试,testSomething()方法失败,因为它们在服务连接之前运行。而且因为回调是为Android而不是为我做的,所以我不能应用(我相信)传统的线程/等待/通知解决方案 我编写了一个跟踪应用程序,它工作得很好,因为代码总是进行检查,如果连接还没有准备好,则什么也不做,但Junit测试是另一回事。

目标:启动服务、等待连接就绪然后返回的方法

此构造函数将启动(GPS)服务。我需要确保在从构造函数返回之前调用了onServiceConnected:

为什么??我正在编写Android Junit测试,testSomething()方法失败,因为它们在服务连接之前运行。而且因为回调是为Android而不是为我做的,所以我不能应用(我相信)传统的线程/等待/通知解决方案


我编写了一个跟踪应用程序,它工作得很好,因为代码总是进行检查,如果连接还没有准备好,则什么也不做,但Junit测试是另一回事。

这个问题和答案描述了如何为测试绑定服务设置
ServiceTestCase
:我的实用程序类GPS不是服务;它只用一个,所以呢?基于您的问题,您的问题在于如何测试服务。因此,您可能会考虑阅读关于如何测试服务的StasOp溢出问题和答案。
public GPS(Context context) {
    Intent intent = new Intent(context, GpsService.class);
    context.startService(intent);
    context.bindService(intent, this, Context.BIND_AUTO_CREATE);        

    // Want to wait here for the callback to onServiceConnected before returning.
    ...
    }

public void onServiceConnected(ComponentName className, IBinder service) {
   ...
}