zoukankan      html  css  js  c++  java
  • Android笔记之Handler

     * 二者比较明显handler速度要快一点
     * 如果异步任务的数据特别庞大,AsyncTask这种线程池结构的优势就体现出来了。

    public class MainActivity extends Activity {
    
        private Button button1, button2;private Dialog dialog;
        private ProgressDialog progressDialog;
    
        String path = "http://g.hiphotos.baidu.com/album/w%3D2048/sign=d6ae435755e736d158138b08af684dc2/9358d109b3de9c82bff8f4046d81800a18d8439f.jpg";
        //用做处理线程传递的消息handler.sendMessage(message1);
        private Handler handler = new Handler() {
            @Override
            public void handleMessage(android.os.Message msg) {
    ....
    Bundle bundle = msg.getData(); String string = bundle.getString("Id"); if (msg.what == 1) { //这里1表示完成 dialog.dismiss(); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) findViewById(R.id.imageView1); dialog = new ProgressDialog(this); dialog.setTitle("正在下载..."); dialog.setCancelable(false); progressDialog = new ProgressDialog(this); progressDialog.setTitle("标题Title..."); progressDialog.setMessage("信息Message..."); // 不会失去焦点 progressDialog.setCancelable(false); // 横向进度条 progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(H); } private View.OnClickListener H = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // 等同与于new Thread(new Runnable() {).start();,为了复用性选择新建class new Thread(new DownImgThread()).start();
    // 显示对话框 dialog.show(); } };
    // 内部类,于class之下,与onCreate平齐 public class DownImgThread implements Runnable { @Override public void run() { // TODO Auto-generated method stub // 线程主体,完成网络耗时操作 // 仅仅只做发送message的操作,更新ui什么的在handleMessage里面
    ........// 第一种 Message message1 = Message.obtain(); message1.obj = data; message1.what = 1; // 不sendMessage則不會產生效果 handler.sendMessage(message1); // 第二种,绑定handler // Message message2 = Message.obtain(handler); // message2.obj = data; // message2.what = isFinish; // message2.sendToTarget(); // //第三种 // //第四种 // Message message4 = Message.obtain(handler,0,1,2,"hello"); // //传递复杂的数据类型 // Bundle bundle=new Bundle(); // bundle.putString("Id", "007"); // message4.setData(bundle); // message4.sendToTarget(); } }

    Done !

  • 相关阅读:
    LRU缓存机制的实现
    用docker配置mysql主从复制
    策略模式,以及最近用到的策略模式
    2021"MINIEYE杯"中超(7~10)补题
    2021"MINIEYE杯"中超(6)补题
    2021"MINIEYE杯"中超(5)补题
    2021"MINIEYE杯"中超(4)补题
    2021"MINIEYE杯"中超(3)补题
    2021暑期个人赛4补题 (待补充)
    2021暑期个人赛2补题 (待补充)
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3389740.html
Copyright © 2011-2022 走看看