在前面 开启一个线程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); } }
就这么简单就完成了。演示效果:
简要介绍一下过程:
接下来我们会再继续深入 Handler 这个东西。
现代魔法 推荐于 2013-02-27 10:23