我们都知道的事情是Android界面的更新只能在主线程总进行。但是,我非要通过子线程更新界面怎么样做呢。
朋友遇到的问题,他是学java后台的,突然对Android感兴趣,于是问我关于线程更新界面的问题:
我现在使用线程更新界面的方法有两个一是handler另外一个就是runOnMainThread,不过handler对与非常快的更新是不好的,容易造成线程滞后,也就是说这种方式只能适用在不是非常频繁的更新中使用的。
handler更新界面又可以根据两种方式来更新:Message和Runable,使用Message可以从子线程中传递一些参数给主线程,Handler获取这些信息并进行相应的处理。使用Runnable则可以直接执行某个处理结果。其实,这两者的实质都是在Handler的队列中放入内容,Handler会处理完一个消息或者执行完某个处理之后再进行下一步操作,这样就不会出现多个线程同时要求进行UI处理而引发混乱现象。
具体代码如下:
package com.example.androidui;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView mText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_m