2011-02-11 3 views
5

Mentre si utilizza l'emulatore a nido d'ape, viene visualizzato l'errore seguente e diventa molto lento.keyDispatchingTimedOut mentre si utilizza l'emulatore

02-11 02:58:50.949: ERROR/ActivityManager(365): ANR in com.android.launcher (com.android.launcher/com.android.launcher2.Launcher) 
02-11 02:58:50.949: ERROR/ActivityManager(365): Reason: keyDispatchingTimedOut 
02-11 02:58:50.949: ERROR/ActivityManager(365): Load: 2.57/1.18/0.89 
02-11 02:58:50.949: ERROR/ActivityManager(365): CPU usage from 3042ms to -7585ms ago: 
02-11 02:58:50.949: ERROR/ActivityManager(365): 74% 365/system_server: 53% user + 21% kernel/faults: 335 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365): 9% 780/zygote: 3.8% user + 5.1% kernel/faults: 915 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365): 8.2% 684/com.android.launcher: 6% user + 2.1% kernel/faults: 51 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0% 432/zygote: 0% user + 0% kernel/faults: 22 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365): 2.4% 41/adbd: 0.3% user + 2% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0.4% 546/com.android.systemui: 0.1% user + 0.2% kernel/faults: 11 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0.5% 733/logcat: 0% user + 0.5% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0% 425/zygote: 0% user + 0% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0% 28/servicemanager: 0% user + 0% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 100% TOTAL: 65% user + 34% kernel + 0.6% softirq 
02-11 02:58:50.949: ERROR/ActivityManager(365): CPU usage from 9680ms to 11220ms later: 
02-11 02:58:50.949: ERROR/ActivityManager(365): 70% 365/system_server: 28% user + 42% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  49% 396/InputDispatcher: 18% user + 30% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  21% 366/HeapWorker: 8.1% user + 13% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 26% 78014% user + 11% kernel/faults: 323 minor 
02-11 02:58:50.949: ERROR/ActivityManager(365):  20% 780/.ap: 10% user + 10% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  5.4% 781/HeapWorker: 4.6% user + 0.7% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 1.3% 41/adbd: 0% user + 1.3% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  0.6% 41/adbd: 0% user + 0.6% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  0.6% 65/adbd: 0% user + 0.6% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 0.7% 684/com.android.launcher: 0.7% user + 0% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  0.7% 684/ndroid.launcher: 0.7% user + 0% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365):  0.7% 691/Binder Thread #: 0.7% user + 0% kernel 
02-11 02:58:50.949: ERROR/ActivityManager(365): 100% TOTAL: 40% user + 58% kernel + 0.6% softirq 

Cosa non ha funzionato qui. Quello che ho bisogno di risolvere questo?
ringraziamento

+0

Anche io sto affrontando lo stesso problema ... hai trovato qualche soluzione I collegamenti – Nargis

risposta

1
  • 1) Si potrebbe avere utilizzato Thread.sleep() nel thread UI. Questo non è bello, e Android ha appena preso a calci la tua attività.

  • 2) Si sta eseguendo un calcolo enorme di dati errati nel thread dell'interfaccia utente. Utilizzare uno AsyncTask o una discussione.

  • 3) L'emulatore è a volte più lento di un telefono.

2

Questo è in realtà ANR (Activity not responding)

la vostra attività sta prendendo il tempo necessario per eseguire l'attività che hai fornito

Qui di seguito i link avere informazioni riguardo alle modalità di costringerlo a essere reattivi attraverso THREADS.

Si dovrebbe eseguire log in esecuzione compiti pesanti in separata THREAD o Async Task

Simlar Problen in SO with solution Here

e

Here

+0

sono davvero utili –

0

Sembra come se si sta facendo un po 'di calcoli complessi nel momento in cui l'attività sta caricando.

ANR(Activity Not Responding)

Generalmente ANR è grilletto se Activity non riesce a dire il sistema operativo Android che "sono ancora vivo". android Developer.

È necessario eseguire in modo Async. Quindi per un'istanza se si desidera eseguire un lungo processo di attesa onClick().

public void onClick(View v) { 
    new DownloadImageTask().execute("http://example.com/image.png");// Any time Taking Event. 
} 

private class DownloadImageTask extends AsyncTask { 
    protected Bitmap doInBackground(String... urls) { 
     return loadImageFromNetwork(urls[0]); 
    } 

    protected void onPostExecute(Bitmap result) { 
     mImageView.setImageBitmap(result); 
    } 
}