我正在學(xué)習(xí) Android,我的任務(wù)是使用 Google Fit steps API 檢索步數(shù)數(shù)據(jù)。但是,我不斷收到“任務(wù)尚未完成”錯(cuò)誤。我不知道這是我那部分的代碼: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 回答
繁星點(diǎn)點(diǎn)滴滴
TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
你遇到了這個(gè)問題,因?yàn)?API 請(qǐng)求(服務(wù)調(diào)用)是Asynchronous,它們不會(huì)立即完成并返回?cái)?shù)據(jù),你不能像其他代碼一樣逐行運(yùn)行它們。您必須等待該響應(yīng)完成,然后才能訪問它返回的數(shù)據(jù)。從文檔中它告訴你它是一個(gè) REST api:

添加回答
舉報(bào)
0/150
提交
取消
