求帮助 一个handler计时器的问题

Android 码拜 8年前 (2016-09-18) 852次浏览
本人做了个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(); 开启的时候查询请求就变成两次两次执行了
再重复以上操作就变成三次三次的执行.. 问一下高手是为什么… 以及怎么样解决
解决方案

100

线程的使用直接调用run()方法,非常不规范。
handler的removeCallbacksAndMessages方法是生效的,多次请求跟handler没关系。
多次请求一定是你在调用run()方法时候,多触发了一次。
本人写代码验证过,没有问题。
可以把全部代码贴上来看一下。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明求帮助 一个handler计时器的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)