zoukankan      html  css  js  c++  java
  • runOnUiThread学习

    runOnUiThread参考:

    http://blog.163.com/menxu_work/blog/static/20777441920125311250187/

    Activity类的runOnUiThread方法你用过吗,如果你对于Android的Thread+Handler方式感觉繁琐,不妨试试Activity提供的另外一种简单的方法runOnUiThread,runOnUiThread可以帮助你在线程中执行UI更新操作,我们只需要在线程中写上类似

    Activity.this. runOnUiThread(new Runnable() {
    
    @Override
    
    public void run() {
    
           // refresh ui 的操作代码
    
       }
    
    });
    

    这里需要注意的是runOnUiThread是Activity中的方法,在线程中我们需要告诉系统是哪个activity调用,所以前面显示的指明了activity。

    http://blog.163.com/ppy2790@126/blog/static/10324224120138210440928/

    更新UI采用Handle+Thread,需要发送消息,接受处理消息(在回调方法中处理),比较繁琐。除此之外,还可以使用runOnUiThread方法。
     
    利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThread(Runnable)。 
     
    Runnable对像就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程。
     
    public class TestActivity extends Activity {
    
    	Button btn;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.handler_msg);
    		btn = (Button) findViewById(R.id.button1);
    
    		btn.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View view) {
    				// TODO Auto-generated method stub
    
    				new Thread(new Runnable() {
    					@Override
    					public void run() {
    						// TODO Auto-generated method stub
    					        // 模拟耗时的操作。
    						try {
    							Thread.sleep(10000);
    						} catch (InterruptedException e) {
    							// TODO Auto-generated catch block
    							e.printStackTrace();
    						}
    						// 更新主线程UI
    						TestActivity.this.runOnUiThread(new Runnable() {
    							@Override
    							public void run() {
    								// TODO Auto-generated method stub
    								btn.setText("更新完毕!");
    							}
    						});
    
    					}
    				}).start();
    
    			}
    		});
    
    	}
    
  • 相关阅读:
    Chrome 开发者工具使用技巧
    POJ2485 Highways 【MST】
    Android 之UI自适应解决方式
    自己封装的轮播工具
    usb芯片调试经验
    SQLSEVER 中的那些键和约束
    mysql通过DATE_FORMAT将错误数据恢复
    vim使用(二):经常使用功能
    Linux系列-Xshell连接本地VMware安装的Linux虚拟机
    LeetCode 107 Binary Tree Level Order Traversal II(二叉树的层级顺序遍历2)(*)
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/4085958.html
Copyright © 2011-2022 走看看