• Android利用Looper在子线程中改变UI


    MainActivity如下:

    package cn.testlooper;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Looper;
    import android.widget.TextView;
    import android.widget.Toast;
    /**
     * Demo描述:
     * 在子线程中Looper的使用
     * 
     * 测试结果:
     * 可在子线程中更改UI
     * 
     * 原理备注:
     * 在View和Toast的源码中均含有一个Handle
     * 这样的话在子线程中:
     * Handle Message Looper MessageQueue这套机制 
     * 就齐备了.
     * 关于此原理有待于进一步研究
     * 
     * 参考资料:
     * http://blog.csdn.net/xiaanming/article/details/9344703
     */
    public class MainActivity extends Activity {
        public TextView mTextView;
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		init();
    	}
    
    	private void init() {
    		mTextView=(TextView) findViewById(R.id.textView);
    		testLooper();
    	}
    	
    	private void testLooper(){
    		new Thread(new Runnable() {
    			@Override
    			public void run() {
    				Looper.prepare();
    				mTextView.setText("9527");
    				Toast.makeText(MainActivity.this, "hello", Toast.LENGTH_LONG).show();
    				Looper.loop();
    			}
    		}).start();
    	}
    
    }
    


    main.xml如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    
        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world"
            android:layout_centerInParent="true"
            android:textSize="25sp"
         />
    
    </RelativeLayout>


     

  • 相关阅读:
    Django--form验证及错误处理
    Django--form保存用户输入内容
    Django--static静态文件引用
    Django--ajax
    Django--form基础
    Django--cookie&session
    Django--缓存
    Django--中间件
    oracle——session
    oracle——DDL
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3233897.html
Copyright © 2020-2023  润新知