Bluetoothデバイスの検出を処理するサービスを含むアプリケーションを作成しています。検出されたデバイスは、ScanCallbackメソッドで受信されます。ScanCallback内で発生するすべてが、メインスレッドではなく、バックグラウンドスレッドで処理されることを確認したいと思います。私の問題は、私の実装では、各コールバックが個別のスレッドを作成することです。これで問題ないかどうか疑問に思っていました。問題がある場合は、同じスレッドを再利用してすべてのコールバックを処理するにはどうすればよいですか。これが私のコードです。
@TargetApi(21)
private ScanCallback GetMScanCallbackForApi21AndAbove() {
return new ScanCallback() {
@Override
public void onScanResult(int callbackType,final ScanResult result) {
new Thread(new Runnable() {
@Override
public void run() {
sendBtDevice(result.getDevice());
}
}).start();
}
@Override
public void onScanFailed(final int errorCode) {
new Thread(new Runnable() {
@Override
public void run() {
//Do something else
}
}).start();
};
}
あなたができることはExecutorServiceを使用することです
また、さまざまなタイプのサービス、シングルスレッド/プーリング、またはニーズに合ったものを使用できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加