私のアプリでは、Bluetoothプリンタで印刷するためのスレッドを作成しています。デバッグモードでは正常に動作していますが、リリースモードではANRエラーが発生しています。私はサービスからスレッドを開始しています。私は次のコードを使用しています:スレッドではUIがフリーズモードでのみフリーズしています
@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();
}
ロリポップバージョンでは、それはあまりにもリリースモードでもマシュマロバージョンで問題を提起しています。
なぜこのような不安定なメカニズムを実装するのではなく、HandlerThreadを使用するだけですか? – Kelevandos