Android 处理子线程与UI交互的简单方法runOnUiThread

来源:互联网 发布:vb集成开发环境功能 编辑:程序博客网 时间:2024/06/05 16:26

很多人都知道handler的使用方法。。都用它来处理UI和数据间的传递,不过这东西有的人认为麻烦。还得存,传,取三步。所以今天给大家介绍一种简单的处理方式。其实UI子线程中的数据传递,有4种方法:1.handler 2.runOnUiThread 3.AsyncTask 4. View.post(Runnable),View.postDelay(Runnable,long)今天我只介绍第二种,简单的方法,比较直观啊,废话不多说,贴代码:

package com.example.activity02;import android.os.Bundle;import android.app.Activity;import android.content.res.Resources.Theme;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 启动线程Thread thread = new Thread(r);thread.start();};Runnable r = new Runnable() {@Overridepublic void run() {// 调用一下activity中的runOnUiThread,需要指出是那个activity调用MainActivity.this.runOnUiThread(new Runnable() {@Overridepublic void run() {Toast.makeText(MainActivity.this, "runOnUiThread简单应用",Toast.LENGTH_SHORT).show();}});}};}

利用Activity.runOnUiThread(Runnable)把更新ui的代码创建在Runnable中,然后在需要更新ui时,把这个Runnable对象传给Activity.runOnUiThread(Runnable)。 这样Runnable对像就能在ui程序中被调用。如果当前线程是UI线程,那么行动是立即执行。如果当前线程不是UI线程,操作是发布到事件队列的UI线程

原创粉丝点击