2011-02-11 31 views
5

Podczas korzystania z emulatora o strukturze plastra miodu wyświetlany jest następujący błąd i staje się bardzo wolny.keyDispatchingTimedOut podczas korzystania z emulatora

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 

Co poszło nie tak. Co muszę naprawić?
dziękuję

+0

Mam również do czynienia z tym samym problemem ... czy znalazłeś jakieś rozwiązanie? – Nargis

Odpowiedz

1
  • 1) Mogłeś wykorzystywane Thread.Sleep() w wątku UI. To nie jest fajne , a Android tylko kopie twoją aktywność.

  • 2) Dokonujesz ogromnych obliczeń złego tyłka w swoim wątku interfejsu użytkownika. Użyj AsyncTask lub wątku.

  • 3) Emulator jest czasami wolniejszy niż telefon.

2

To jest rzeczywiście ANR (Activity not responding)

swoją aktywność trwa wystarczająco długo, aby wykonać zadanie podane

Poniżej linki mają informacje dotyczące sposobu, aby zmusić go do reagowania thru THREADS.

Należy wykonać ciężkich dziennika uruchamiania zadań w oddzielnym THREAD lub Async Task

Simlar Problen in SO with solution Here

i

Here

+0

linki są naprawdę pomocne –

0

Wydaje się, jeśli robisz jakiś skomplikowany obliczeń w czasie, gdy aktywność jest ładowana.

ANR(Activity Not Responding)

Generalnie ANR jest wyzwalacz jeśli Activity nie powiedzieć Android OS, że "żyję". android Developer.

Należy wykonać w sposób asynchroniczny. Tak więc dla przykładu, jeśli chcesz wykonać długi proces oczekiwania 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); 
    } 
} 
Powiązane problemy