0

私はAndroidアプリケーションで作業しており、ハードウェアBluetoothデバイスからBluetoothデータを受信して​​います。スタックのすべての投稿を確認し、サンプルアプリを使用してコードを設計しました。問題は、「Bluetoothレシーバー」が機能しないことです。ハードウェアデバイスからデータを送信するたびに、初めて機能しますが、正確に2回目は常にデータ通知を受信できませんでした。

public class BluetoothDataReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

ConfigClass.bluetoothDataReceive++;
if (ConfigClass.bluetoothDataReceive == 1) {
ConfigClass.showToast(context,
ConfigClass.MSG_RECEIVE_BLUETOOTH_DATA);

}else if (ConfigClass.bluetoothDataReceive ==2) {
ConfigClass.bluetoothDataReceive = 0;

}
}
}

私を助けてください....私は長い間この問題に苦しんでいます。

4

1 に答える 1

1

BroadcastReceiver.onReceive()は、UIとは異なるスレッドで実行されます。UIはスレッドセーフではありません。その中でToast()を実行することは悪い考えであり、おそらく予期しない結果につながるでしょう...

于 2012-12-13T00:41:43.210 に答える