阅读更多

 

  /** handler更新数据标志 */    protected static final int MSG_UPDATE_DATA                  = 2;    protected static final int MSG_INSERT_DB                    = 0;

 

 

public void downloadData() {        updateUIThread( MSG_UPDATE_DATA );        mListView.refreshSelf();    }

 

 public void updateUIThread( final int type ) {        new Thread( new Runnable() {            @Override            public void run() {                mUIhandler.sendEmptyMessage( type );            }        } ).start();    }

 

 /** 刷新UI handler */   private Handler  mUIhandler    = new Handler() {    public void handleMessage(  android.os.Message msg ) {switch ( msg.what ) {    case MSG_UPDATE_DATA:updateListView( ( List ) TaskDbManager .getData( TaskDbManager.TABLE_TASK_RECEIVE, mQueryByState ) );break;     default: break;}    };};

 

 

 

 

 

 

 

 

 

 

 

 

 

handler 处理方法

消息处理代码:    private Handler handler = new Handler() {    public void handleMessage(Message msg) {        switch (msg.what) {            case 1 :                bt.setText("正在下载...");                break;            case 2 :                Bitmap bm = (Bitmap) msg.obj;                iv.setImageBitmap(bm);                break;            case 3 :                Bundle bundle = msg.getData();                String data = bundle.getString("text");                bt.setText(data);                break;        }    }};消息发送代码:方式一:示例1: Message.obtain(handler,1).sendToTarget();示例2: Bitmap bm = NetUtil.downloadNewImg(); Message.obtain(handler, 2, bm).sendToTarget();示例3: // 这条消息,不携带数据,而是携带一段代码, 主线程处理这条消息时,会执行它携带的代码,而不执行其他代码Message.obtain(handler, new Runnable() {    public void run() {        bt.setText("下载内涵图");    }}).sendToTarget();方式二:示例1: handler.obtainMessage(1).sendToTarget();示例2: Bitmap bm = NetUtil.downloadNewImg(); handler.obtainMessage(2, bm).sendToTarget(); 方式三:示例1: Message msg = new Message(); msg.what =1; handler.sendMessage(msg);示例2: Message msg = new Message(); msg.what =2; msg.obj = bm; handler.sendMessage(msg);示例3: Message msg = new Message(); Bundle data = new Bundle(); data.putString("text", "正在下载..."); msg.what = 3; msg.setData(data); handler.sendMessage(msg);示例4:// 创建一个携带代码的消息对象,并发送给主线程执行handler.post(new Runnable() {    public void run() {        // 在主线程中,处理消息时执行        Toast.makeText(                MainActivity.this, "下载结束",                 Toast.LENGTH_SHORT).show();    }});

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

捐助开发者

在兴趣的驱动下,写一个免费的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。



 
 
 谢谢您的赞助,我会做的更好!

 

 

更多相关文章

  1. Android(安卓)P ActivityManagerService(六) startActivity的第四
  2. Android之数据存储-手机存储中
  3. Android(安卓)工具代码
  4. Android(安卓)调用中国气象的webservice
  5. Android(安卓)kill app Process 结束进程代码
  6. Android(安卓)BroadCast
  7. Android支持单词提示搜索框的网络请求策略
  8. android中如何获取视频时长
  9. Android(安卓)Audio代码分析14 - testPlaybackHeadPositionIncre

随机推荐

  1. Android(安卓)各版本代号 & Java Source
  2. android webview 遇到android.os.FileUri
  3. Android属性动画property animation
  4. Android开发者实用代码片段
  5. Android加速度传感器
  6. Android IDL 小例子
  7. [置顶] Android 系列:安装Android SDK出现
  8. Android解析XML
  9. 关于android创建对话框报错The method se
  10. Android adb获取屏幕分辨率