Почему сообщение «DISCOVERY_FINISHED» напечатано дважды?

#android #bluetooth #android-bluetooth

#Android #bluetooth #android-bluetooth

Вопрос:

Я хочу искать устройство Bluetooth каждые три секунды. итак, я использовал таймер, подобный этому.

     public void SearchingDevice() {
    m_BTAdapter.startDiscovery();

    m_timer = new Timer(true);              
    TimerTask timerTask = new TimerTask() {
        public void run() {
            m_BTAdapter.cancelDiscovery();
            m_BTAdapter.startDiscovery();
        }
    };
    m_timer.schedule(timerTask, 3000, 3000);
}
  

Кстати, «android.bluetooth.adapter.action.Сообщение «DISCOVERY_FINISHED»
всегда печатается дважды ….. почему это сообщение напечатано дважды??
Я использовал cancelDiscovery () только один раз…
пожалуйста, кто-нибудь, помогите мне ..!!
Спасибо.

Ответ №1:

Вы должны быть осторожны с задачей таймера. Возможно, проблема в том, что вы не отменяете задачу с помощью ActivityLifecycle и каждый раз создаете новую. попробуйте:

 @Override
 protected void onPause() {
   super.onPause();
   m_timer.cancel();
}
  

можете ли вы вставить фрагмент кода, где вы вызываете метод SearchingDevice()?

Комментарии:

1. Спасибо за ваш ответ. 🙂

2. но.. я не могу вставить фрагмент кода .. Произошла ошибка