阅读更多

 

  /** 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】抽屉控件 SlidingDrawer 的简单示例
  2. android 实现流媒体播放远程mp3文件代码
  3. Android(安卓)ToggleButton控件的用法
  4. Android——简单对话框
  5. Android(安卓)Robotium的自动化代码
  6. android延时更新UI
  7. Android(安卓)列表之分组ListView
  8. android 定时发送短信
  9. Android(安卓)代码中实现返回键功能

随机推荐

  1. Android之背景图片设置为重复而不是默认
  2. 收藏的Android非常好用的组件或者框架。
  3. android调节屏幕亮度
  4. android 屏幕上面画线
  5. Android开机广播和关机广播
  6. android 全屏幕显示以及竖屏显示
  7. Android(安卓)GridView 通过seletor 设置
  8. Android(安卓)和 SQLite 基本数据类型
  9. android-logging-log4j - Logging with L
  10. Android(安卓)Studio下对资源进行分包