Aby zainicjować interfejs API Tłumacza Google, należy go wykonać w wątku. Zazwyczaj zajmuje to tylko 2 sekundy. Jednak 1 na 5 razy zajmuje to od 20 sekund do 3 minut (niedopuszczalne).Google Translate API czasami zajmuje bardzo dużo czasu, aby zainicjować
AppCompatActivity gdzie zainicjować Google Translate API
AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {
@Override
public void onPostExecute (Void aVoid) {
Log.i("APP", "finished initializing");
}
@Override
protected Void doInBackground(Void... voids) {
Log.i("APP", "started initializing");
translate2 = TranslateOptions.newBuilder().setApiKey(MY_API_KEY).build().getService();
return null;
}
};
asyncTask.execute();
Gradle
Mam też ostatnią wersję w moim Gradle (moduł):
compile ('com.google.apis:google-api-services-translate:v2-rev49-1.22.0')
Note
Kiedyś działa natychmiast, ten błąd jest bardzo aktualny. Nie jestem pewien, dlaczego tak się dzieje z nikąd.
Jak jesteś profilowanie jakie konkretne bloki kodu wziąć jak dużo czasu, aby uruchomić? Czy to jest tak, że twoja cała obsługa żądań trwa tak długo? – Nick
Tak, całe wykonanie zadania AsynctTask trwa tak długo z inicjalizacją tłumaczenia wewnątrz funkcji DoInBackground, dzienniki na stronie DoInBackground i Post Execute śledzą, jak długo trwa ta jedna linia kodu. @Nick – grant
Biorąc pod uwagę profil czasowy zdarzenia, może to być po prostu przypadek pogorszenia połączenia między klientem a serwerem. Czy to nadal występuje? Czy dzieje się to konsekwentnie, czy tylko przez większość czasu/przez jakiś czas? A jak klient łączy się z siecią? Czy pojawiło się to na wielu klientach? – Nick