grantespo
grantespo

Reputation: 2269

Google Translate API sometimes takes very long time to initialize

To initialize the Google Translate API, it must be done in a thread. Most of the time it only takes 2 seconds. However, 1 out of every 5 times, it takes anywhere from 20 seconds to 3 minutes (Unacceptable).

AppCompatActivity where I Initialize 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

I also have the latest version in my gradle (module):

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

Note

It used to work instantly, this error is very recent. I'm not sure why this is occurring out of nowhere.

Upvotes: 11

Views: 1541

Answers (1)

PEHLAJ
PEHLAJ

Reputation: 10126

Try replacing

asyncTask.execute();

with

asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);

asyncTask.execute() Execute method runs in serial mode, if any other async task has been executed before it & that task is still running, then it will wait for other async task to finish.

Where as, executeOnExecutor will run asynctasks in parallel

Upvotes: 1

Related Questions