`
knight_black_bob
  • 浏览: 823116 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android handle ui 更新

阅读更多

 

  /** 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<TaskReceiveRspJson> ) 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捐助),没钱捧个人场,谢谢各位。



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

 

 

分享到:
评论

相关推荐

    android handle线程数据传递 源代码

    android 多线程 数据传递 handle 源代码 可以通过handle更新ui,提高客户体验

    使用Handler实现异步更新UI例子

    新线程中发送Handle消息,主线程中处理消息并更新TextView的值

    android开发教程之handler异步更新ui

    主要介绍了android使用handler异步更新ui的示例,大家参考使用吧

    Handler和AsyncTack

    出于性能优化的考虑,Android的UI线程不是线程安全的。这致使我们不能在Android的UI线程中执行一些费时的操作,如下载、刷新等。Android中只允许UI线程对Activity中的UI组件进行修改。不过我们有两种方式来优化这种...

    Android代码-materialsteppers

    Material Design Steppers Google Material Design Steppers Component - Android Java - Official Link ...Use onNextButtonHandler method to handle UI validation inside Fragments,whenever the

    Pro Android 2

    Learn about Android 2.0’s integrated local and web search, handwriting gesture UI, Google Translate, and text-to-speech features. With Android and this book, you’ll be able to build mobile ...

    android-async-http 源码

    Make asynchronous HTTP requests, handle responses in anonymous callbacks HTTP requests happen outside the UI thread Requests use a threadpool to cap concurrent resource usage GET/POST params builder ...

    Android 线程开发 开发实例

    针对这种消息循环的机制,我们引入一个新的机制Handle,我们有消息循环,就要往消息循环里 面发送相应的消息,自定义消息一般都会有自己对应的处理,消息的发送和清除,消息的的处理,把这些都封装在Handle里面,...

    Efficient Android Threading(O'Reilly,2014)

    Multithreading is essential if you want to create an Android app with a great user experience, but how do you know which techniques can help solve your ... Use loaders to update the Ui with new data

    Android代码-类似于增强的SeekBar小部件

    the thumb (handle) will snap to the nearest tick mark. Developers can customize the following attributes (both via XML and programmatically): bar color bar thickness tick height number of ticks ...

    Android之封装好的异步网络请求框架

    所有的请求都是独立在UI主线程之外,没有通过CommCallback回调方法处理请求结果, 没有了子线程、没有了handle,链式的变成使得代码更加清晰 。博客地址:http://blog.csdn.net/dickyqie/article/details/54879807

    Android抽屉 SlidingDrawer

    用SlidingDrawer注意两点,一个是android:handle(委托要展开的图片加载Layout配置) 和android:content(要展开的Layout Content), 我的csdn博客地址: ...

    Pro Android 4

    How to build irresistible standard and custom User Interfaces and User Experiences (UI and UX) across Android devices How to populate your application with data from data sources, using Content ...

    Android.Database.Best.Practices.0134437993

    “Android™ Database Best Practices goes well beyond API documentation to offer strategic advice about how to handle data in an Android application and the tools needed to develop productively....

    Pro.Android.5.1430246804

    Chapter 5 Making Advanced UI Layouts Chapter 6 Adding Menus and ActionBar Chapter 7 Styles and Themes Chapter 8 Fragments Chapter 9 Responding to Configuration Changes Chapter 10 Dialogs: Regular and ...

    android-query 开发包

    AndroidQuery 一个轻量级的库,用于实现 Android 上的异步任务和操作 UI 元素。 项目含有26 个文件源文件,分析如下: auth含有: public class WebDialog extends Dialog 对话框显示网页信息 public class ...

    Pro.Android.5.14302468

    Chapter 5 Making Advanced UI Layouts Chapter 6 Adding Menus and ActionBar Chapter 7 Styles and Themes Chapter 8 Fragments Chapter 9 Responding to Configuration Changes Chapter 10 Dialogs: Regular and ...

    Android下拉加载更多

    1、在适配器之前加页脚,这样适配器会重新被封装成 '有页脚的适配器 2、监听滚动状态改变:1-手指正在滑动 2-手指停止滑动 3-组件停止滚动 3、通过handle和主线程通讯,主线程接收消息更新UI

    一本android的好书beginning android 2 和 源码

    Where Oh Where Has My UI Thread Gone? Asyncing Feeling The Theory AsyncTask, Generics, and Varargs The Stages of AsyncTask A Sample Task And Now, the Caveats ■Chapter 16: Handling Activity Life ...

Global site tag (gtag.js) - Google Analytics