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 !

  • 相关阅读:
    AxAssist MS Dynamics AX Development Tool
    Using x++ code calculate the personal tax of salary
    35岁前务必成功的12级跳(转)
    Window:下载并安装FileZilla客户端
    Windows本地文件上传到Linux服务器(腾讯云)
    Linux:服务器(CentOS)搭建FTP服务
    Window下载并安装WinSCP客户端
    Docker之镜像原理
    深入剖析RocketMQ 之消息存储模块
    谈谈Redis分布式锁安全性
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3389740.html
Copyright © 2011-2022 走看看