0

Dieser Code läuft auf einem Hintergrund Thema:Thread.sleep() bewirkt, dass ANR in Android

@Override 
public void run() { 
    while (true) { 
     a = a+1; 

     try { 
      Thread.sleep(100); 
     } 
     catch (Throwable t) { 
      Log.e("","", t); 
     }   
    } 
} 

In Entwicklerkonsole sehe ich ANR Bericht:

ANR Eingang abgelaufen Dispatching (Waiting senden nicht-Schlüsselereignis, weil das berührte Fenster nicht beendet hat bestimmte Eingabeereignisse verarbeitet, die vor ihm über 500.0ms geliefert wurden.)

"myThread" prio=5 tid=7 SUSPENDED 
    | group="main" sCount=1 dsCount=0 obj=0x11111111 self=0x22222222 
    | sysTid=11111 nice=0 sched=0/0 cgrp=[fopen-error:2] handle=333333333 
    | state=S schedstat=(0 0 0) utm=2 stm=3 core=1 
    at java.lang.VMThread.sleep (Native Method) 
    at java.lang.Thread.sleep (Thread.java:1013) 
    at java.lang.Thread.sleep (Thread.java:995) 
    at com.example.MyThread.run (MyThread.java:123) 

Wie kann ich diese ANR beheben?

+0

post vollständigen Code obwohl, warum Sie wollen, dass Ihr Thread weiter schlafen –

+0

Nein, es ist auf Arbeitsfaden, und kann nicht ARN verursachen. Ihr Fehler kommt von einem anderen Codeblock. –

Antwort

0

Das Problem ist, dass Sie einen inkrementellen Befehl innerhalb einer while(true) Schleife machen.

Verwandte Themen