2
버튼을 클릭 할 때 코드가 실행되는 동안 앱이 즉시 중단됩니다.Google 맞춤 통합 UI 스레드 기록 결과를 요청하는 동안 오류가 발생했습니다.
Caused by: java.lang.IllegalStateException: await must not be called on the UI thread when time is greater than zero.
at com.google.android.gms.common.internal.zzbo.zza(Unknown Source)
at com.google.android.gms.internal.zzbbd.await(Unknown Source)
at com.gfit.test.mygfitapp.MainActivity.onStart(MainActivity.java:154)
버튼 클릭 방법은 코드 다음이 포함되어 오류 다음 쇼를 로그인합니다. 로그에서 언급 한 바와 같이
Calendar calendar = Calendar.getInstance();
Date date = new Date();
calendar.setTime(date);
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.YEAR, -1);
long startTime = calendar.getTimeInMillis();
DataReadRequest dataReadRequest = new DataReadRequest.Builder()
.read(DataType.TYPE_WEIGHT)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.setLimit(1)
.build();
DataReadResult dataReadResult = Fitness.HistoryApi.readData(mApiClient, dataReadRequest).await(1000, TimeUnit.MILLISECONDS);
Toast.makeText(getApplicationContext(),""+dataReadResult.toString(),Toast.LENGTH_LONG).show();
그것은 UI 스레드에서 실행할 수 없습니다. 코드를 실행하는 다른 방법은 무엇입니까? 당신이 배경 스레드 코드를 이동해야 같은 오류가 말한대로
이 보인다. –
backgound에서 참조 코드 실행 프로세스를 제안 할 수 있습니까? –
당신은 프로세스를 실행할 필요가 없습니다, 당신은'안드로이드'백그라운드 스레드에서 코드를 실행하는 방법을 찾아야합니다. << - 이것을 구글에서 사용하십시오. –