本人做了个handler计时器隔5秒查询一次
handler = new Handler();
task = new Runnable() {
@Override
public void run() { //5秒重复查询一次
handler.postDelayed(task, 5000);
//发起查询请求
mManager.nearbyInfoRequest(option);
}
};
task.run();
有个按钮调用
handler.removeCallbacksAndMessages(null); //让handler停止
让handler停止.. 是生效的… 但是本人再次调用
task.run(); 开启的时候查询请求就变成两次两次执行了
再重复以上操作就变成三次三次的执行.. 问一下高手是为什么… 以及怎么样解决
handler = new Handler();
task = new Runnable() {
@Override
public void run() { //5秒重复查询一次
handler.postDelayed(task, 5000);
//发起查询请求
mManager.nearbyInfoRequest(option);
}
};
task.run();
有个按钮调用
handler.removeCallbacksAndMessages(null); //让handler停止
让handler停止.. 是生效的… 但是本人再次调用
task.run(); 开启的时候查询请求就变成两次两次执行了
再重复以上操作就变成三次三次的执行.. 问一下高手是为什么… 以及怎么样解决
解决方案
100
线程的使用直接调用run()方法,非常不规范。
handler的removeCallbacksAndMessages方法是生效的,多次请求跟handler没关系。
多次请求一定是你在调用run()方法时候,多触发了一次。
本人写代码验证过,没有问题。
可以把全部代码贴上来看一下。
handler的removeCallbacksAndMessages方法是生效的,多次请求跟handler没关系。
多次请求一定是你在调用run()方法时候,多触发了一次。
本人写代码验证过,没有问题。
可以把全部代码贴上来看一下。