2016-10-22 5 views
-2

블루투스 장치를 3 초마다 검색하고 싶습니다. 그래서 타이머를 이렇게 사용했습니다. 이 메시지가 두 번 인쇄 왜 그런데"DISCOVERY_FINISHED"메시지가 두 번 인쇄되는 이유는 무엇입니까?

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()를 사용했습니다 ... 제발 도와주세요 .. !! 감사합니다. .

답변

0

타이머 작업에주의해야합니다. 어쩌면 문제는 activityLifecycle로 작업을 취소하지 않고 새 작업을 만들 때마다 발생하는 것입니다. 시도 :

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

당신이 SearchingDevice() 메서드를 호출 코드의 조각을 붙여 넣을 수 있습니다?

+0

답장을 보내 주셔서 감사합니다. :) –

+0

하지만 .. 코드 조각을 붙여 넣을 수 없습니다 .. 오류가 발생했습니다 –

+0

좋아요! 해결 되었습니까? 답으로 표시 : D –