android Handler 实现Demo
写了一个简单的Handler测试类。留作以后参考
package com.zhangxl.mydemo.activity; import com.zhangxl.mydemo.R; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; /** * handler测试demo * * @author zhangxl * */ public class HandlerActivity extends Activity { private Button startBt; private Button endBt; private ProgressBar testBar; private Handler handler; private Runnable handlerThread; int number; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.handler_test); // 给按钮添加监听事件 startBt = (Button) findViewById(R.id.start); startBt.setOnClickListener(new HandlerListener()); endBt = (Button) findViewById(R.id.end); endBt.setOnClickListener(new HandlerListener()); testBar=(ProgressBar)findViewById(R.id.progressBar1); // 创建handler对象 handler = new HandlerTest(); handlerThread = new handlerThread(); } /** * <按钮监听事件内部类> <功能详细描述> * * @author zhangxl * @version [版本号, 2014-5-4] * @see [相关类/方法] * @since [产品/模块版本] */ public class HandlerListener implements OnClickListener { public void onClick(View v) { // TODO Auto-generated method stub int id = v.getId(); switch (id) { // 开始 case R.id.start: System.out.println("开始"); handler.post(handlerThread); break; // 结束 case R.id.end: handler.removeCallbacks(handlerThread); number=0; testBar.setProgress(0); break; default: break; } } } /** * <线程循环输出内部类> <功能详细描述> * * @author zhangxl * @version [版本号, 2014-5-4] * @see [相关类/方法] * @since [产品/模块版本] */ public class handlerThread implements Runnable { public void run() { // TODO Auto-generated method stub try { Thread.sleep(1000); number++; //得到一个消息对象,Message类是android系统提供的 Message msg = handler.obtainMessage(); msg.arg1=number*10; System.out.println(number); handler.sendMessage(msg); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * <继承Handler 重写handleMessage 方法实现类> * <功能详细描述> * * @author zhangxl * @version [版本号, 2014-5-4] * @see [相关类/方法] * @since [产品/模块版本] */ public class HandlerTest extends Handler{ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); testBar.setProgress(msg.arg1); handler.post(handlerThread); } } }
浙公网安备 33010602011771号