handler和runOnMainThread更新界面问题

本文探讨了在Android中如何在子线程中更新界面,主要聚焦于Handler和runOnUiThread这两种方法。尽管Android规定界面更新必须在主线程进行,但可以通过Handler的Message和Runnable实现非频繁的更新。Handler处理消息队列,避免多线程并发UI操作,而runOnUiThread直接在主线程执行任务。
摘要由CSDN通过智能技术生成

我们都知道的事情是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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值