你如何使用Dagger2提供GoogleApiClient依赖?

时间:2016-03-13 16:42:07

标签: dagger-2 android-googleapiclient

我已经开始使用Dagger2来管理依赖项,并且我试图了解如何使用DI来提供单一的GoogleApiClient。对此的动机是:

  • 减少样板代码:多项活动&片段需要GoogleApiClient
  • 提高可测试性:目前这些活动和碎片未经过充分测试

我想在应用程序范围内提供Singleton GoogleApiClient。

你如何处理回调?无论你选择auto-managed or manually-managed connection,还是有一些必须处理的回调:

  • GoogleApiClient.ConnectionCallbacks(仅限手动)
  • GoogleApiClient.OnConnectionFailedListener(两者)

1 个答案:

答案 0 :(得分:4)

您可以使用注入来创建客户端

 @Provides
    @Singleton
    GoogleApiClient providesGoogleApiClient(Context context) {
            return new GoogleApiClient.Builder(context)
                    .addApi(Places.GEO_DATA_API)
                    .addApi(LocationServices.API)
                    .build();
        }

然后管理您的活动回电

@Inject GoogleApiClient mGoogleApiClient;



if (mGoogleApiClient != null) {  mGoogleApiClient.registerConnectionCallbacks(this);            mGoogleApiClient.registerConnectionFailedListener`(this);
}

我希望这对你有所帮助。