android 关于Handler终止问题

privateHandlermHandler=newHandler(){publicvoidhandleMessage(android.os.Messagemsg){fl... private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
float progress = hp.getCurrentCount();
if(stop>progress){
hp.setCurrentCount(++progress);
}
else if(stop<progress){
hp.setCurrentCount(--progress);
}
else{
++error;
}
if (progress >= stop) {
mHandler.removeMessages(MSG_PROGRESS_UPDATE);
}
mHandler.sendEmptyMessageDelayed(MSG_PROGRESS_UPDATE, 30);
};
};

我activity里运行了这个Handler
到达了progress >= stop条件后 运行了 mHandler.removeMessages(MSG_PROGRESS_UPDATE);
可是为什么终止不掉?
展开
 我来答
Macchiiatto
推荐于2017-10-06 · TA获得超过894个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:132万
展开全部

你的判断语句有问题,相当于移除了消息又添加了消息,加一个else应该就能解决。

if (progress >= stop) {
    mHandler.removeMessages(MSG_PROGRESS_UPDATE);
}else{
    mHandler.sendEmptyMessageDelayed(MSG_PROGRESS_UPDATE, 30);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式