Dans mon application, nous créons un thread pour l'impression via l'imprimante Bluetooth. il fonctionne bien en mode debug mais le mode de release donne une erreur ANR. Je commence le fil d'un service. Je suis en utilisant le code suivant:Thread gèle l'interface utilisateur uniquement en mode de diffusion dans anroid
@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();
}
Dans la version lollipop il fonctionne très bien, il ne se donne problème dans la version Marshmellow que trop en mode libération.
Pourquoi ne pas simplement utiliser HandlerThread au lieu d'implémenter un mécanisme instable comme celui-ci? – Kelevandos