2017-04-08 37 views
10

Google Translate API'yi başlatmak için bir iş parçacığı içinde yapılmalıdır. Çoğu zaman sadece 2 saniye sürer. Ancak, her 5 seferden 1'i, 20 saniyeden 3 dakikaya kadar sürer (Kabul edilemez). Google APIGoogle Translate API bazen başlatılması çok uzun zaman alır

 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

Çevir başlat

AppCompatActivity Ben de gradle (modül) yaşanan son sürümüne sahip:

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

Not

Anında çalışmak için kullanılır, bu hata çok yeni. Bunun neden hiçbir yerde olmadığından emin değilim.

+0

yılında asynctasks çalışacak? Tüm istek işleyicinizin bu kadar uzun sürmesi mi? – Nick

+0

Evet, tüm AsynctTask Execution, DoInBackground içindeki Translate başlatması, DoInBackground'daki Log'lar ve Post Execute ile bir kod satırının ne kadar sürdüğünü izler. @Nick – grant

+0

Etkinliğin zaman profili verildiğinde, yalnızca istemci ve sunucu arasındaki bağlantıda bir bozulma durumu olabilir. Bu hala mı oluyor? Ve sürekli mi yoksa çoğu zaman mı/zaman mı? İstemci ağa nasıl bağlanır? Bu, birden fazla müşteri üzerinde görünüyor mu? – Nick

cevap

1

asyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); 

asyncTask.execute() başka zaman uyumsuz görev bu görev hala o & önce idam edilmişse yöntem, seri modda çalışır Yürütme ile

asyncTask.execute(); 

değiştirmeyi deneyin koşmak, sonra diğer async görevini bitirmek için bekleyecektir.

olarak, executeOnExecutor kod özel engellemeler ne kadar zaman çalıştırmak için almak profilleme ne kadar paralel

+0

Zaten bunu denedim, sorun hala var, Google'ın sunucu tarafı hatası olabilir. – grant

+1

@grant Belki de Google'ın sunucu tarafının hatasıdır çünkü çalışabilmem için Google'a bağlanması gereken Google Nearby API'sini kullanıyorum ve birkaç gün önce Google Play Hizmetinin denediğim zamanların yaklaşık% 95'inde çökmesine neden oldu benim kodum Bugün kodum sadece zamanın% 10'unda API'nin çökmesine neden oluyor. Ve kodum değişmedi. – trinity420

İlgili konular