android handler,Android Handler的一个简单使用例子

在前面 开启一个线程Thread并用进度条显示进度 这篇文章里,我们用线程实现了这么一个简单的功能,就是点击按钮,加载进度条。但是有没有发现,点击一次之后,再次点击就会没效。我们可是需要每次点击都要显示下一张图片的。

这里就需要引入 Android 的消息机制了,简单来说,就是 Handler、Looper 还有 Message Queue的使用。这里我们用一个简单的例子来说明 Handler 的使用,就是每次点击按钮,给消息队列发送一个数字 5。还是在 PaintingActivity 里做。

PaintingActivity :

private Button btn_next;

private Handler pic_hdl;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.painting);

btn_next = (Button)findViewById(R.id.btn_loadnext);

btn_next.setOnClickListener(new ButtonListener());

pic_hdl = new PicHandler();

}

class ButtonListener implements OnClickListener{

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

if( v.getId() == R.id.btn_loadnext){

Message msg = pic_hdl.obtainMessage();

msg.what = 4;

pic_hdl.sendMessage(msg);

}

}

}

class PicHandler extends {

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

int what = msg.what;

System.out.println("what: " + what);

}

}

就这么简单就完成了。演示效果:

89535331e4c0535c852440393a37be6d.png

简要介绍一下过程:

private Handler pic_hdl; 定义一个 Handler, 而 pic_hdl = new PicHandler(); 则是从我们定义的 class PicHandler 新建一个 Handler;

然后看按钮的 onClick 事件,obtainMessage 为获取一个 msg 对象,然后给 msg.what 赋值,sendMessage 将 msg 对象发到消息队列中;

回到 PicHandler,我们在 handleMessage 可以很简单地重新获得消息队列里 what 的值。然后在 Log 里打印出来。

接下来我们会再继续深入 Handler 这个东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值