欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

如何阻止handler的消息处理

程序员文章站 2022-07-14 19:02:24
...

*本次的文章介绍,如何阻止handler的消息处理,是来源于自己写的小程序中,在一个界面中需要反复向服务端发送某个请求,而当这个界面被切换到另一个界面的时候,该hander的handlermessage就不能再处理该类信息,如下面所示

final Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            if(msg.what==1)
            {
           //更新UI  代码省略
            queryhistorytrack();//请求访问服务器
            }
        }
    };
    private void queryhistorytrack()
    {
       //请求服务器接收信息,接受完信息之后,通知主线程更新UI
       Message message = handler.obtainMessage(1); 
        handler.sendMessageDelayed(message,15000);
        //延迟15秒发送信息
    }
    //如何组织上面的handlermessage,在activity切换时
    //在activity那个主类中onStop方法中
     @Override
    protected void onStop(){
        super.onStop();
        handler.removeMessages(1);
       //在消息队列中remove 1这种信息,就可以中断处理
    }

至于为什么onStop阻止,可以看一下activity的生命周期
handler详细教程