我什么时候应该在Android应用程序中与Google Play服务断开连接?

好东西

我的应用使用“位置客户端”来检索当前位置,并同时路由到用户在地图上放置的点。我是Google Play服务的新手,我想知道,就最佳实践而言,何时应该断开LocationClient的连接?

rubenlop88

Android培训站点建议了两种方法来连接和断开LocationClient在“检索当前位置”训练中,LocationClient初始化为onCreate,这样connect()调用onStartdisconnect()进行调用onStop(取自源代码)。

@Override
protected void onCreate(Bundle savedInstanceState) {
    mLocationClient = new LocationClient(this, this, this);
}

@Override
public void onStop() {
    mLocationClient.disconnect();
    super.onStop();
}

@Override
public void onStart() {
    super.onStart();
    mLocationClient.connect();
}

然后,您可以选择何时何地开始或停止位置更新。

识别用户的当前活动中LocationClient每次用户想要请求或停止活动识别更新时都会初始化。首先connect()被调用,然后在中被调用onConnectedrequestActivityUpdates或在removeActivityUpdates被调用之后立即disconnect()被调用。在示例源代码中,有一个名为的类DetectionRequester可启动活动识别更新:

public void requestUpdates() {
    getActivityRecognitionClient().connect();
}

@Override
private void onConnected() {
    getActivityRecognitionClient().requestActivityUpdates(...);
    getActivityRecognitionClient().disconnect();
}

@Override
public void onDisconnected() {
    mActivityRecognitionClient = null;
}

private ActivityRecognitionClient getActivityRecognitionClient() {
    if (mActivityRecognitionClient == null) {
        mActivityRecognitionClient = new ActivityRecognitionClient(...);
    }
    return mActivityRecognitionClient;
}

还有另一个类似的类称为DetectionRemover,它停止活动识别更新。

另一种方法是将两个方法(requestUpdatesremoveUpdates)放在同一个类中,如下所示:

public enum RequestType {
    START, STOP;
}

@Override
public void onConnected(Bundle bundle) {
    switch (mRequestType) {
        case START:
            getActivityRecognitionClient().requestActivityUpdates(...);
            break;
        case STOP:
            getActivityRecognitionClient().removeActivityUpdates(...);
            break;
        default:
            break;
    }
    getActivityRecognitionClient().disconnect();
}

@Override
public void onDisconnected() {
    mActivityRecognitionClient = null;
}


public void requestUpdates() {
    mRequestType = RequestType.START;
    getActivityRecognitionClient().connect();
}

public void removeUpdates() {
    mRequestType = RequestType.STOP;
    getActivityRecognitionClient().connect();
}

private ActivityRecognitionClient getActivityRecognitionClient() {
    if (mActivityRecognitionClient == null) {
        mActivityRecognitionClient = new ActivityRecognitionClient(...);
    }
    return mActivityRecognitionClient;
}

可以使用相同的方法来开始和停止位置更新。

我不知道哪种方法可以被视为最佳实践,但是它们在示例源代码中。我个人在所有项目中都使用了第三种方法。第三种方法直到最近才出现在“活动识别”样本中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

什么时候应该在我的Android应用程序中断开与Google Play服务的连接?

来自分类Dev

您是否应该在每次活动中连接和断开与Google Play服务的连接?

来自分类Dev

我应该在应用程序层服务中测试什么

来自分类Dev

我应该在哪里存储DBI连接,什么时候应该关闭它?

来自分类Dev

什么时候应该在PHP中关闭数据库连接?

来自分类Dev

我们什么时候说在Web应用程序中建立连接?

来自分类Dev

使用“ Google Play游戏服务”进行游戏时突然断开连接

来自分类Dev

什么时候应该断开GoogleApiClient(Android)的连接

来自分类Dev

什么时候应该断开GoogleApiClient(Android)的连接

来自分类Dev

我应该在ASP.NET MVC应用程序中的哪里放置外部服务调用?

来自分类Dev

我应该在ASP.NET MVC应用程序中的哪里放置外部服务调用?

来自分类Dev

我应该在应用程序运行时保持连接的GoogleApiClient吗?

来自分类Dev

什么时候应该在node.js mysql中使用连接池?

来自分类Dev

什么时候应该在连接池中实例化数据源

来自分类Dev

什么时候应该在NodeJS中将连接池与MySQL一起使用

来自分类Dev

什么时候应该在node.js mysql中使用连接池?

来自分类Dev

什么时候应该在 react 中将组件连接到 redux?

来自分类Dev

什么时候应该在我们的项目中使用数据层应用程序?

来自分类Dev

我应该在 Play 商店中为 Android 应用停用旧的 APK 吗?

来自分类Dev

应用由于连接断开而崩溃。我应该在DAL中还是在域存储库中关闭它们?

来自分类Dev

什么时候应该在Java EE应用程序中使用POJO(而不是EJB)?

来自分类Dev

我是否应该在node.js服务器应用程序中缓存涉及海量文件I / O的功能的结果?

来自分类Dev

将 django 应用程序部署到生产服务器,我应该在 git clone 中包含环境 (env) 吗?

来自分类Dev

我应该在客户端/服务器应用程序中使用套接字吗?

来自分类Dev

单页应用程序-我应该在服务器端使用MVC Framework吗?

来自分类Dev

我应该在无服务器应用程序中使用Express.js吗?

来自分类Dev

我应该在哪里将上传的图像放在Java应用程序的服务器上?

来自分类Dev

我应该在哪里放置不需要外部Web服务器的独立Web应用程序?

来自分类Dev

我什么时候应该在StratifiedKFold中洗牌

Related 相关文章

  1. 1

    什么时候应该在我的Android应用程序中断开与Google Play服务的连接?

  2. 2

    您是否应该在每次活动中连接和断开与Google Play服务的连接?

  3. 3

    我应该在应用程序层服务中测试什么

  4. 4

    我应该在哪里存储DBI连接,什么时候应该关闭它?

  5. 5

    什么时候应该在PHP中关闭数据库连接?

  6. 6

    我们什么时候说在Web应用程序中建立连接?

  7. 7

    使用“ Google Play游戏服务”进行游戏时突然断开连接

  8. 8

    什么时候应该断开GoogleApiClient(Android)的连接

  9. 9

    什么时候应该断开GoogleApiClient(Android)的连接

  10. 10

    我应该在ASP.NET MVC应用程序中的哪里放置外部服务调用?

  11. 11

    我应该在ASP.NET MVC应用程序中的哪里放置外部服务调用?

  12. 12

    我应该在应用程序运行时保持连接的GoogleApiClient吗?

  13. 13

    什么时候应该在node.js mysql中使用连接池?

  14. 14

    什么时候应该在连接池中实例化数据源

  15. 15

    什么时候应该在NodeJS中将连接池与MySQL一起使用

  16. 16

    什么时候应该在node.js mysql中使用连接池?

  17. 17

    什么时候应该在 react 中将组件连接到 redux?

  18. 18

    什么时候应该在我们的项目中使用数据层应用程序?

  19. 19

    我应该在 Play 商店中为 Android 应用停用旧的 APK 吗?

  20. 20

    应用由于连接断开而崩溃。我应该在DAL中还是在域存储库中关闭它们?

  21. 21

    什么时候应该在Java EE应用程序中使用POJO(而不是EJB)?

  22. 22

    我是否应该在node.js服务器应用程序中缓存涉及海量文件I / O的功能的结果?

  23. 23

    将 django 应用程序部署到生产服务器,我应该在 git clone 中包含环境 (env) 吗?

  24. 24

    我应该在客户端/服务器应用程序中使用套接字吗?

  25. 25

    单页应用程序-我应该在服务器端使用MVC Framework吗?

  26. 26

    我应该在无服务器应用程序中使用Express.js吗?

  27. 27

    我应该在哪里将上传的图像放在Java应用程序的服务器上?

  28. 28

    我应该在哪里放置不需要外部Web服务器的独立Web应用程序?

  29. 29

    我什么时候应该在StratifiedKFold中洗牌

热门标签

归档