【发布时间】: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