1.需求:
当前开启搜索设备任务,因为没有搜索超时的回调方法导致手机当没有可用设备连接的时候会一直在搜索设备。所以这边做了一个搜索超时回调,当搜索超时停止搜索给用户一个信息反馈。
2.代码实现
在开始搜索的时候将消息放入消息队列,规定超时时间为一分钟
public static final int SEARCH_DEVICE_TIME_OUT = 60*1000;
private static final int SEARCH_DEVICE_TIME_OUT = 1;
private void init() {
....................
....................
....................
//start searching devices
handler.sendEmptyMessageDelayed(SEARCH_DEVICE_TIME_OUT, TctConstants.SEARCH_DEVICE_TIME_OUT);
....................
....................
....................
}
如果在规定的时间我们搜索到了设备则发送取消消息
private void onDeviceFind(){
handler.removeMessages(SEARCH_DEVICE_TIME_OUT);
}
当在规定时间没将消息移除则说明到达超时事件处理的时候了
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case SEARCH_DEVICE_TIME_OUT:
//do something
break;
}
}
};