android Handler 学习
2011-11-19 23:03
162 查看
Handler 学习
1、处理线程队列
handler post()把一个线程加到线程队列中
//取出消息队列中的消息
//移除消息队列
1、处理线程队列
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { //声明两个控件 private Button btn1; private Button btn2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener(new StartButtonListener()); btn2 = (Button)findViewById(R.id.button2); btn2.setOnClickListener(new EndButtonListener()); } class StartButtonListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub //将线程updateThread投递到线程队列 handler.post(updateThread); } } class EndButtonListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub //将线程updateThread移除线程队列 handler.removeCallbacks(updateThread); } } Handler handler = new Handler(); Runnable updateThread = new Runnable() { @Override public void run() { // TODO Auto-generated method stub System.out.println("updateThread"); //实现循环 handler.postDelayed(updateThread, 3000); } }; }2、用Handler 实现ProgressDialog进度条
import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; 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; public class MainActivity extends Activity { //声明两个控件 private Button btn1; private Button btn2; private ProgressDialog processDialog; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btn1 = (Button)findViewById(R.id.button1); btn1.setOnClickListener(new StartButtonListener()); btn2 = (Button)findViewById(R.id.button2); btn2.setOnClickListener(new EndButtonListener()); } class StartButtonListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub //将线程updateThread投递到线程队列 //handler.post(updateThread); processDialog = new ProgressDialog(MainActivity.this); processDialog.setIcon(R.drawable.ic_launcher); processDialog.setTitle("进度条"); processDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); processDialog.setMax(100); processDialog.show(); handler.post(updateThread); } } class EndButtonListener implements OnClickListener { @Override public void onClick(View v) { // TODO Auto-generated method stub //将线程updateThread移除线程队列 handler.removeCallbacks(updateThread); } } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { processDialog.setProgress(msg.arg1); handler.post(updateThread); } }; Runnable updateThread = new Runnable() { int i=0; @Override public void run() { // TODO Auto-generated method stub System.out.println("ProcessDialog"); i=i+1; //得到一个消息对象,Message类 Message msg = handler.obtainMessage(); //将msg对象的值设置为i msg.arg1=i; try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } handler.sendMessage(msg); if(i==100) { handler.removeCallbacks(updateThread); } } }; }
handler post()把一个线程加到线程队列中
//取出消息队列中的消息
Message msg = handler.obtainMessage();
//移除消息队列
handler.removeCallbacks(updateThread);
相关文章推荐
- android下载学习和handler
- Android(java)学习笔记134:Handler用法总结和秒表案例
- Android Handler学习笔记
- Android学习第十二天---DOM+Handler
- Android(java)学习笔记149:AsyncTask(异步任务)和Handler(消息机制)
- Android基础学习之异步任务使用Handler
- android消息处理机制学习(二)-Handler,Message,MessageQueue,Looper图例讲解
- Android中Handler学习
- Handler(一)--MarsChen Android 开发教程学习笔记
- Mars Android视频学习笔记——01_14/15_Handler的使用
- Android开发学习之路--异步消息Handler,Message,Looper和AsyncTask之初体验
- Android开发学习2-Handler
- android Handler 机制研究学习笔记
- Android学习 AsyncTask与Handler
- android学习14#--Handler消息传递机制实例应用
- Android源码学习(1) Handler
- Android Framework学习(八)之Handler消息机制(Native层)解析
- android-Handler基本用法学习总结
- android handler学习笔记
- Android开发学习之路-Handler消息派发机制源码分析