android Handler小结

来源:互联网 发布:股票量化交易软件 编辑:程序博客网 时间:2024/06/05 07:28

Handler的使用在android开发中给我们提供了太多的便捷,它的主要作用有两个:

在新启动线程中发送消息;

在主线程中获取,处理消息;

今天这里总结一下,在项目开发中经常使用到Hanlder的几种实例:

1,延时执行函数A,只执行一次

定义消息变量:

private final static int MSG_A_START = 0x0001;

private int delayTime = 1000;

private Handler mHandler = null;

调用:

        mHandler=new Handler()
{
@Override
public void handleMessage(Message msg) {
switch (msg.what)
{
case MSG_A_START :
A();
}
}
};
if (true) {
mHandler.sendEmptyMessageDelayed(MSG_A_START , delayTime );
}

2,某段时间内一直触发执行函数A,执行N次,可设置时间间隔

手指按下时执行,抬起时停止:

手指按下:

if (mHandler != null) {
Message message = mHandler.obtainMessage(MSG_A_START );//获取消息
mHandler.sendMessage(message);//立刻出发

        mHandler.sendMessageDelayed(message, delayTime );//以delayTime 时间间隔触发
}

手指抬起:

if (mHandler != null) {
mHandler.removeMessages(MSG_A_START );

}

声明Handler: 

         mHandler=new Handler()
{
@Override
public void handleMessage(Message msg) {
switch (msg.what)
{
case MSG_A_START :
A();
}
}
};

3,与Timer结合,定义计时器,周期执行A

只需要给Handler增加计时器:

new Timer().schedule(new TimerTask()
{
@Override
public void run() {
// TODO Auto-generated method stub
mHandler.sendEmptyMessage(MSG_A_START);
}

},0,delayTime);//以delayTime时间间隔发送消息执行A,此方法可以显示循环动画播放

以上三种情况是我们比较常用到的,一起学习,一起总结下呵呵!

0 0
原创粉丝点击