我正在學習 Android,我的任務是使用 Google Fit steps API 檢索步數數據。但是,我不斷收到“任務尚未完成”錯誤。我不知道這是我那部分的代碼:private List<Fitness> readHistoryDataFromGoogle() { DataReadRequest readRequest = createDataReadRequest(); Task<DataReadResponse> response = com.google.android.gms.fitness.Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this)).readData(readRequest); DataReadResponse responses = response.getResult(); List <Fitness> fitnessItems = parseFitness(responses); return fitnessItems;}private List<Fitness> parseFitness(DataReadResponse dataReadResponse) { List<com.example.mentalhealthapp.Fitness> fitnessItems = new ArrayList<>(); for (Bucket bucket : dataReadResponse.getBuckets()) { for (DataSet set : bucket.getDataSets()) { for (DataPoint dataPoint : set.getDataPoints()) { int numSteps = dataPoint.getValue(Field.FIELD_STEPS).asInt(); long startDateTime = dataPoint.getStartTime(TimeUnit.MILLISECONDS); long endDateTime = dataPoint.getEndTime(TimeUnit.MILLISECONDS); fitnessItems.add(new com.example.mentalhealthapp.Fitness(numSteps, startDateTime, endDateTime)); } } } return fitnessItems;}非常感謝您的幫助!
1 回答

繁星點點滴滴
TA貢獻1803條經驗 獲得超3個贊
你遇到了這個問題,因為 API 請求(服務調用)是Asynchronous
,它們不會立即完成并返回數據,你不能像其他代碼一樣逐行運行它們。您必須等待該響應完成,然后才能訪問它返回的數據。從文檔中它告訴你它是一個 REST api:
添加回答
舉報
0/150
提交
取消