Android 自动断开GoogleAppClient的连接

Android 自动断开GoogleAppClient的连接,android,google-api-client,Android,Google Api Client,我想为GoogleAppClient编写一个包装器,以便在活动的onDestroy方法期间自动断开连接(如果未显式关闭)。这样做的主要动机是通过忘记在使用活动上下文创建的GoogleAppClient上调用disconnect()来避免内存泄漏。我想在整个应用程序中使用这个包装器 我想知道是否有任何建议支持或反对这种创建自动关闭连接的设计决策?只需执行以下操作:` @Override protected void onPause() { super.onPause(); //

我想为
GoogleAppClient
编写一个包装器,以便在活动的
onDestroy
方法期间自动断开连接(如果未显式关闭)。这样做的主要动机是通过忘记在使用活动上下文创建的GoogleAppClient上调用
disconnect()
来避免内存泄漏。我想在整个应用程序中使用这个包装器

我想知道是否有任何建议支持或反对这种创建自动关闭连接的设计决策?

只需执行以下操作:`

@Override
protected void onPause() {
    super.onPause();

    // Your application logic
    // ...
    // ...

    mGoogleApiClient.disconnect();
}
像往常一样,不要忘记在其中包含
mgoogleapclient.disconnect()
,而不是在
onDestroy()
上,因为这不是Google实现的生命周期(或者至少尝试推荐,在您的情况下),您仍然需要在
onStart()
上调用客户端连接。此解决方案只有一行代码

只需执行以下操作:`

@Override
protected void onPause() {
    super.onPause();

    // Your application logic
    // ...
    // ...

    mGoogleApiClient.disconnect();
}

像往常一样,不要忘记在其中包含
mgoogleapclient.disconnect()
,而不是在
onDestroy()
上,因为这不是Google实现的生命周期(或者至少尝试推荐,在您的情况下),您仍然需要在
onStart()
上调用客户端连接。此解决方案只有一行代码

提供了答案,但它不是最佳解决方案,也不能直接回答问题。问题是如何自动管理GoogleapClient。有一个选项称为
enableautomanager()

文件:

您可以通过以下操作启用此功能:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, this) //auto manage disconnecting client
            .addConnectionCallbacks(this)
            .addApi(LocationServices.API)
            .build();
此外,onPause()不是断开客户端连接的最佳位置。您应该使用onStop()。尤其是现在,因为它被称为后蜂窝设备(API 11+)


希望这是有帮助的。干杯

提供了一个答案,但它不是最好的解决方案,也不能直接回答问题。问题是如何自动管理GoogleapClient。有一个选项称为
enableautomanager()

文件:

您可以通过以下操作启用此功能:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
            .enableAutoManage(this, this) //auto manage disconnecting client
            .addConnectionCallbacks(this)
            .addApi(LocationServices.API)
            .build();
此外,onPause()不是断开客户端连接的最佳位置。您应该使用onStop()。尤其是现在,因为它被称为后蜂窝设备(API 11+)

希望这是有帮助的。干杯