In meiner App erstellen wir einen Thread zum Drucken über den Bluetooth-Drucker. Es funktioniert gut im Debug-Modus, aber Release-Modus gibt es ANR-Fehler. Ich beginne den Thread von einem Dienst. Ich verwende den folgenden Code ein:Thread friert die Benutzeroberfläche nur im Freigabemodus in Android
@Override
public void start() {
super.start();
while (!threadInitOK); // it is getting stuck here
}
@Override
public void run() {
Looper.prepare();
mLooper = Looper.myLooper();
if (null == mLooper)
Log.v(TAG, "mLooper is null pointer");
else
Log.v(TAG, "mLooper is valid");
workHandler = new WorkHandler();
threadInitOK = true;
Looper.loop();
}
In Lollipop Version es gut funktioniert es nur geben Problem in Marsh Version, die auch im Release-Modus.
Warum nicht einfach HandlerThread verwenden anstatt einen instabilen Mechanismus wie diesen zu implementieren? – Kelevandos