`

handler异步更新UI

 
阅读更多

废话少说,直接进入代码

package com.pms.myhandle;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageView;

public class MyHandle extends Activity {

private ImageView iv;
int what = 0;

//创建Handle对象
private Handler handler = new Handler(){

//实现方法用来接收消息
@Override
public void handleMessage(Message msg) {
switch(msg.what){ //判断接收的消息
case 0:
iv.setImageResource(R.drawable.photo1);
break;
case 1:
iv.setImageResource(R.drawable.photo2);
break;
case 2:
iv.setImageResource(R.drawable.photo3);
break;

}
super.handleMessage(msg);
}

};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

//取得ImageView对象
iv = (ImageView) findViewById(R.id.iv);

thread.start(); //启动线程

}

//新建一个线程
Thread thread = new Thread(new Runnable() {

//实现run方法
@Override
public void run() {
while(true)
{
Message msg = handler.obtainMessage();
msg.what = (what++)%3;
handler.sendMessage(msg); //发送消息
try {
Thread.sleep(2000);//停止2秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}){

};
}

main.xml

<?xml version="1.0" encoding="UTF-8"?>
-<LinearLayout android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/hello"/> <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/photo1" android:id="@+id/iv"/> </LinearLayout>

分享到:
评论

相关推荐

    使用Handler实现异步更新UI例子

    以下是一个使用Handler实现异步更新UI的典型步骤: 1. **创建Handler实例**:首先,在主线程中创建一个Handler实例。这个Handler将用于接收和处理来自其他线程的消息。 ```java Handler mHandler = new Handler() ...

    android开发教程之handler异步更新ui

    开发者可以通过创建`Handler`实例、定义`Runnable`并使用`post()`或`postDelayed()`来安排UI更新,或者直接在子线程中调用`postInvalidate()`来触发视图的重绘。在实际项目中,这种异步更新UI的方法非常常见,也是...

    ndroid异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    为了解决这个问题,Android提供了多种异步处理机制,其中一种常见的方式是使用`Thread`配合`Handler`来实现非UI线程执行耗时任务并更新UI。本篇将详细介绍这一方法。 首先,我们需要理解Android的线程模型。Android...

    handler异步更新

    3. Looper在主线程中持续运行,接收到子线程发送的消息后,调用Handler的handleMessage()方法,执行相应的UI更新逻辑。 这种异步更新机制使得开发者可以在不阻塞UI的情况下执行耗时操作,提高了应用的响应速度和...

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    ### Android异步处理详解:使用Thread+Handler实现非UI线程更新UI界面 #### 概述 Android系统中,每一个应用程序都运行在一个独立的Dalvik虚拟机进程中。当应用程序启动时,系统会创建一个主线程(MainThread),也...

    Android异步刷新UI多种实现方案

    虽然TimerTask不直接处理UI更新,但可以在任务执行完毕后通过Handler或者直接在主线程调用UI更新方法。这种方式适合实现定时刷新UI的效果,比如定时刷新数据。 对比这三种方法,Asynctask适用于简单快速的任务,且...

    Android异步更新UI-线程池-Future-Handler实例分析

    Demo-实例讲解线程池里面的UI如何刷新,处理两个开发者头疼的问题:...1. 数据经常需要读取更新,并且比较耗时,需要分步刷新UI. 2. UI界面切换后,如何停止掉子线程里面正在读取的数据而不会将旧数据刷新到新UI界面上.

    利用Handler来更新android的UI

    在Android开发中,更新UI是一项常见的任务,尤其是在...理解和熟练使用`Handler`,能够帮助开发者更好地实现异步操作和UI更新,提高应用的用户体验。通过阅读源码,还可以进一步理解Android消息处理系统的内部机制。

    Handler消息机制和异步加载

    完成任务后,通过Handler将结果发送回主线程更新UI。`post(Runnable r)`或`sendMessage(Message msg)`可以将Runnable或Message放入消息队列,等待主线程处理。 4. syncTask异步加载:syncTask可能是一个自定义的...

    xamarin学习笔记A13(安卓Handler异步消息处理)

    本篇笔记主要聚焦于Xamarin中的Android Handler异步消息处理机制,这是Android UI线程与后台工作线程之间通信的关键技术。 一、Android线程模型 Android系统规定,所有的UI操作必须在主线程(也称为UI线程)中进行...

    Handler异步消息处理机制创建图加载类

    Handler异步消息处理机制在Android开发中扮演着重要的角色,特别是在处理UI更新和与主线程交互时。在“Handler异步加载图片 GridView 上拉刷新 下拉刷新”这个主题中,我们将深入探讨如何利用Handler实现图片的异步...

    Android异步更新UI的四种方式

    这种方法简洁明了,适合快速实现简单的UI更新。例如,可以在后台线程中调用runOnUiThread,传入一个更新TextView文本的Runnable。 4. **使用IntentService和BroadcastReceiver** IntentService是一个用于执行后台...

    android 线程池 handler异步刷新 双缓存

    在Android开发中,高效地处理任务执行和UI更新是至关重要的。线程池、Handler以及双缓存机制是实现这一目标的关键技术。本篇将详细解释这些概念,并结合实际项目中的封装方法,探讨如何在Android应用中实现异步刷新...

    详解android进行异步更新UI的四种方式

    大家都知道由于性能要求,Android要求只能在UI线程中更新UI,要想在其他线程中更新UI,我大致总结了4种方式,欢迎补充纠正: 使用Handler消息传递机制; 使用AsyncTask异步任务; 使用runOnUiThread(action)方法...

    handler结合Thread异步加载网络图片

    `Handler` 是Android消息处理机制的关键组件,它允许我们在一个线程中发送消息到另一个线程,特别是将后台线程的结果传递给主线程更新UI。`Handler`需要与`Looper`配合工作,`Looper`是一个消息循环,它不断检查消息...

    Android Handler 异步消息机制的例子

    下面是一个典型的使用Handler异步消息机制的例子: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void handleMessage...

    安卓UI线程和子线程通讯更新UI实例

    首先,让我们详细讨论如何在非MainActivity类的子线程中进行UI更新。通常,我们可以使用Handler、AsyncTask或者RunOnUiThread方法来实现这一目标。 1. **Handler机制**:创建一个Handler对象,将其绑定到UI线程。...

    详解android异步更新UI的几种方法

    为了不阻塞ui线程,我们时常会开启一个新的线程(工作线程)来执行这些耗时操作,然后我们可能需要将查询到的数据渲染到ui组件上,那么这个时候我们就需要考虑异步更新ui的问题了。 android中有下列几种异步更新ui的...

    Android Handler AsyncTask 异步加载

    在Android应用开发中,Handler、AsyncTask和异步加载是三个关键的概念,它们主要用于解决UI线程阻塞问题,提高应用程序的响应速度和用户体验。下面将详细解释这三个概念及其相互关系。 **Handler(处理器)** ...

Global site tag (gtag.js) - Google Analytics