【问题标题】:Fitness.HistoryApi.readDailyTotal hangs indefinitelyFitness.HistoryApi.readDailyTotal 无限期挂起
【发布时间】:2017-10-31 23:19:36
【问题描述】:

我正在编写一个 Android Wear 应用程序。我正在尝试查询步长增量,每当我这样做时,readDailyTotal 都会无限期挂起。我已经在模拟器和物理设备上尝试过,但没有成功。

这是我用来连接客户端的代码(我正在将本地数据加载到设备):

    mClient = new GoogleApiClient.Builder(this)
      .useDefaultAccount()
      .addApi(Fitness.HISTORY_API)
      .addApi(Fitness.RECORDING_API)
      .addOnConnectionFailedListener(this)
      .addConnectionCallbacks(this)
      .build();
    mClient.connect();

我通过以下方式订阅录制 API:

    Fitness.RecordingApi.subscribe(mClient, DataType.TYPE_STEP_COUNT_DELTA)
      .setResultCallback( /* some stuff */);

最后,我查询 AsyncTask 中的数据(以及它挂起的位置):

    PendingResult<DailyTotalResult> result = Fitness.HistoryApi.readDailyTotal(mClient, DataType.TYPE_STEP_COUNT_DELTA);

我已经运行了调试器并隔离了该行的挂起。

任何想法都将不胜感激,因为我一直在摸索并搜索了几天。

【问题讨论】:

  • 你的GoogleApiClient 真的连接了吗?
  • 我确实验证了它已连接。它在我的 ConnectionCallback 中调用了 onConnect。
  • 我应该补充一点,这是我实例化 AsyncTask 的时候。
  • 您为什么在AsyncTask 中调用readDailyTotal?它已经是一个异步操作(这就是它返回 PendingResult 的原因)
  • 我是从一个例子中提取出来的。在你质疑我的非理性逻辑之后,我将它从 AsyncTask 移到了一个方法中,它现在返回了。感谢您的帮助。

标签: android wear-os google-fit


【解决方案1】:

readDailyTotal 不需要在 AsyncTask 中调用,因为它已经是一个异步操作(这就是它返回 PendingResult 的原因)。

【讨论】:

    猜你喜欢
    • 2017-06-29
    • 2011-05-07
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多