0
我正在開發一個Android應用程序,並希望使用Dagger作爲我的DI框架。但我不知道如何注入使用回調的依賴關係。如何使用依賴注入與java回調
比如我想要得到的位置,我用GoogleApiClient此:
public class LocationProvider implements ILocationProvider,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {
private GoogleApiClient googleApiClient;
private ILocationRequester requester;
public LocationProvider(@NonNull Context context, @NonNull ILocationRequester requester) {
this.requester = requester;
googleApiClient = new GoogleApiClient.Builder(context)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.build();
}
@Override
public void beginGetLocation() {
googleApiClient.connect();
}
@Override
public void onConnected(@Nullable Bundle bundle) {
Location lastLocation = LocationServices.FusedLocationApi.getLastLocation(googleApiClient);
requester.locationFound(lastLocation);
}
@Override
public void onConnectionSuspended(int i) {
requester.locationFound(null);
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
requester.locationFound(null);
}
}
在這種情況下,我想用匕首可以嘲笑它在我的測試中注入GoogleApiClient例如,但因爲它取決於這個班級,我不能。該場景對於任何使用回調的長時間運行操作都是有效的,即使我使用其他類來實現回調。
有沒有人知道這個解決方案?