Подтвердить что ты не робот

API Google Translate иногда занимает очень много времени для инициализации

Чтобы инициализировать API Google Translate, это должно быть сделано в потоке. Большую часть времени занимает всего 2 секунды. Однако 1 раз в 5 раз требуется от 20 секунд до 3 минут (неприемлемо).

AppCompatActivity, где я инициализирую API Google Translate

      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

У меня также есть последняя версия в моем gradle (module):

 compile ('com.google.apis:google-api-services-translate:v2-rev49-1.22.0')

Примечание

Это работало мгновенно, эта ошибка очень недавняя. Я не уверен, почему это происходит из ниоткуда.

4b9b3361

Ответ 1

Попробуйте заменить

asyncTask.execute();

с

asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

asyncTask.execute(). Выполнение метода выполняется в последовательном режиме, если перед ним еще была выполнена другая асинхронная задача, и эта задача все еще выполняется, тогда она будет ожидать завершения другой задачи async.

Где, executeOnExecutor параллельно запускает asynctasks