本文主要是介绍android消息机制之子线程更新UI其它方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、项目目录结构
二、layout界面
三、layout界面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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.zgs.otherhandler.MainActivity" ><TextViewandroid:id="@+id/tv_simple"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /></RelativeLayout>
四、MainActivity类代码
package com.zgs.otherhandler;import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;public class MainActivity extends Activity {private Handler mHandler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final TextView tv_simple = (TextView) findViewById(R.id.tv_simple);//子线程在activity没有显示出来时是可以更新主线程UI的,即主线程的审查机制没有启动之前是可以更新UI的//SurfaceView:多媒体视频播放 ,可以在子线程中更新UI//Progress(进度)相关的控件,也可以在子线程中更新UInew Thread(new Runnable() {@Overridepublic void run() {/*try {Thread.sleep(40);} catch (Exception e) {e.printStackTrace();}tv_simple.setText("都被更新了!");*///子线程更新UI:第二种方法,第一种方法在博客《android消息机制之网络图片查看器》/* //使用activity的runOnUiThread方法更新ui,无论当前线程是否是主线程,都将在主线程执行runOnUiThread(new Runnable() {@Overridepublic void run() {tv_simple.setText("都被更新了!");}});*///子线程更新UI:第三种方法(1)/*mHandler.post(new Runnable() {@Overridepublic void run() {tv_simple.setText("都被更新了!");}});*///子线程更新UI:第三种方法(2)mHandler.postDelayed(new Runnable() {@Overridepublic void run() {tv_simple.setText("都被更新了!");}}, 1000*5);}}).start();}
}
这篇关于android消息机制之子线程更新UI其它方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!