Я пишу приложение, содержащее службу, которая обрабатывает обнаружение устройств 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();
};
}