`

ch022 Android Handler

阅读更多

--------------------------------------------AndroidManifest.xml----------------------------------

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.ch22"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="8"

        android:targetSdkVersion="15" />

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/title_activity_main" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

--------------------------------------------Layout activity_main.xml-----------------------------

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <Button

        android:id="@+id/btn"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content" 

        android:text="Button"/>

</LinearLayout>

--------------------------------------------MainActivity.java--------------------------------------

package com.ch22;

import android.app.Activity;

import android.graphics.Color;

import android.os.Bundle;

import android.os.Handler;

import android.os.Message;

import android.util.Log;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

/**

 * 

 * 项目名称:com.ch22    

 * 类名称:MainActivity    

 * 类描述:Handler

 * 创建人:方勇   

 * 创建时间:2012-12-10 下午8:29:04   

 * Copyright (c) 方勇-版权所有

 */

public class MainActivity extends Activity {

private Button btn;

/* 更新UI主线程对象 */

private Handler handler = new Handler() {

/* 异步接受消息 */

@Override

public void handleMessage(Message msg) {

super.handleMessage(msg);

/* 获取Map数据 */

Bundle bundle = msg.getData();

/* 取得颜色值 */

int color = bundle.getInt("color");

MainActivity.this.btn.setBackgroundColor(color);

Log.i("fy""Handler=" + Thread.currentThread().getName());

}

};

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findView();

setListeners();

Log.i("fy""MainHandler=" + Thread.currentThread().getName());

}

/* 实例化UI */

private void findView() {

this.btn = (Button) findViewById(R.id.btn);

}

/* 设置监听 */

private void setListeners() {

btn.setOnClickListener(new btnOnClickListener());

}

class btnOnClickListener implements OnClickListener {

public void onClick(View v) {

MyThread my = new MyThread();

/* 启动线程 */

new Thread(my).start();

}

};

class MyThread implements Runnable {

public void run() {

try {

Thread.sleep(3000);// 子线程睡眠3秒

catch (InterruptedException e) {

e.printStackTrace();

}

/* 实例化消息 */

Message msg = new Message();

Bundle bundle = new Bundle();

bundle.putInt("color", Color.RED);

msg.setData(bundle);

/* 发送消息,告诉老大(主线程)请更新 */

MainActivity.this.handler.sendMessage(msg);

Log.i("fy""MyThread=" + Thread.currentThread().getName());

}

};

}

--------------------------------------------结果-----------------------------------------------------

点击按钮前

点击按钮后的3秒,按钮变为红色

<!--EndFragment-->
  • 大小: 79.5 KB
  • 大小: 77.9 KB
0
0
分享到:
评论

相关推荐

    CH341 Android代码

    9. **异步编程**:由于Android应用的主线程不允许执行耗时操作,因此会使用到AsyncTask、IntentService、Handler、RxJava等异步处理机制。 10. **Gradle构建系统**:Android项目使用Gradle进行构建,管理依赖和打包...

    android CH34x 发送与接收数据

    在Android平台上进行CH34x芯片的USB通信是嵌入式开发中的常见任务,尤其对于需要与硬件设备交互的应用来说。CH34x系列芯片是由韦尔奇科技(Wch Chip)开发的一组USB到串口控制器,广泛用于USB转串口适配器,使得通过...

    Android SDK开发范例大全(第二版)CH05.rar

    5. **异步操作**:Android中的AsyncTask、Handler、Looper以及IntentService等机制,用于处理耗时操作,防止阻塞主线程。这些异步技术的使用方法和最佳实践可能在本章中有所阐述。 6. **BroadcastReceiver**:广播...

    使用handler 实现预约时间功能

    在提供的压缩包文件`ch08_handler`中,可能包含了关于如何在实际项目中使用Handler实现预约时间功能的示例代码和详细讲解。通过学习这些资料,开发者可以深入理解Handler的工作原理,并熟练掌握其在Android应用开发...

    android ophone开发完全讲义源码ch15.1

    《Android OPhone开发完全讲义源码Ch15.1》是针对Android平台,特别是OPhone版本的一个深度学习资源,涵盖了第十五章的第一个部分。OPhone是中国移动基于Android操作系统定制的智能手机平台,它在Android的基础上...

    android ophone开发完全讲义源码ch15.2

    《Android Ophone开发完全讲义源码Ch15.2》是针对Android平台上OPhone操作系统进行深入探讨的一份宝贵资源,特别关注了第十五章第二部分的编程实践。OPhone是基于Android系统的一个定制版本,由中国移动推出,旨在...

    android SDK范例开发大全 第3版 源代码 CH8

    《Android SDK范例开发大全 第3版 源代码 CH8》是一本专注于Android应用程序开发的实战指南,其中包含了丰富的示例代码,旨在帮助开发者深入理解Android SDK的各种功能和使用方法。这部分源代码对应的是书中的第八章...

    Android开发权威指南(源代码ch03)

    在本章“ch03”中,我们将探索Android应用的基础架构,包括Activity、Intent、BroadcastReceiver以及Service等核心组件。这些组件构成了Android应用的核心功能,理解和掌握它们对于任何Android开发者来说都是至关...

    android ophone开发完全讲义源码ch04

    《Android OPhone开发完全讲义源码Ch04》是一份深入探讨Android OPhone平台开发的教程资料,其中包含了第四章的源代码。这一章节主要聚焦于Android应用程序的架构、UI设计以及与设备硬件交互的基础知识。在Android ...

    Android SDK开发范例大全source_CH04

    综上所述,"Android SDK开发范例大全source_CH04"包含的内容广泛,涉及了Android开发的诸多核心技术和最佳实践。通过学习并实践这些示例,开发者可以提升自己的Android开发技能,更好地理解和运用Android SDK。

    Android SDK开发范例大全(第二版)CH03.rar

    《Android SDK开发范例大全(第二版)CH03》是针对Android应用程序开发的一本详尽教程,由清华大学出版社出版。这本书的第三章涵盖了Android SDK中的关键知识点,旨在帮助开发者深入理解和实践Android应用的构建过程。...

    android开发权威指南(第二版)源代码

    这些源代码分布在不同的章节文件夹中,包括ch29、ch20、ch21、ch28、ch41、ch39、ch24、ch11和ch09,每个文件夹代表书中对应章节的内容。 1. **基础概念与环境搭建** (ch09) - 安装和配置Android Studio:书中可能...

    Android SDK开发范例大全(第二版)CH08.rar

    《Android SDK开发范例大全(第二版)CH08》是一个关于Android应用程序开发的压缩包,专注于SDK的第八章内容。这一章可能涵盖了Android开发中的关键概念和技术,旨在帮助开发者深入理解和实践Android平台的编程。 在...

    疯狂android讲义(第2版) 源码 ch11-14

    源码ch11-14涵盖了书中第11至14章的内容,这部分主要涉及Android应用开发中的高级主题和技术,包括自定义视图、数据存储、网络通信以及多线程处理。 在第11章,"自定义View与动画"中,读者将学习如何扩展Android的...

    《Android 5.0 开发范例代码大全》(第4版)代码

    Ch07 - 并行与多线程:此章节探讨了如何在Android上进行异步操作,如使用AsyncTask,Handler,Loader,以及线程池。这些代码示例有助于优化应用程序性能,避免阻塞主线程。 Ch08 - 动画与过渡效果:这部分代码展示...

    Android&Java的线程框架与模式_高焕堂_PDF.rar

    第四章“消息队列与Handler”(Thread_Ch04_MQ_ok.pdf)详细讲解了Android的消息队列机制,包括Handler、Looper和Message对象的使用,以及它们在多线程环境中的协同工作。这部分内容对于理解和编写高性能的Android ...

    Android SDK开发范例大全(第二版)CH09.rar

    《Android SDK开发范例大全(第二版)CH09》是一个关于Android应用程序开发的资源压缩包,主要聚焦在SDK的第九章内容。Android SDK是Android应用开发者的重要工具集,它包含了构建、测试和调试Android应用所需的所有...

    android ophone开发完全讲义源码ch09

    这部分可能包含AsyncTask、Handler、Looper和Thread的使用。 8. **SQLite数据库(SQLite Databases)**:Android内置了SQLite数据库,用于存储应用数据。开发者可能需要学习如何创建数据库、表,进行数据查询和更新...

    Android-OPhone开发完全讲义源码2

    6. **多线程与异步处理**:Android应用的性能优化往往涉及到多线程,如使用AsyncTask、Handler、Thread或Runnable。ch13和ch16可能讲解如何有效地处理异步任务,避免阻塞主线程。 7. **内容提供者**:如果涉及ch20...

    Google Android SDK开发范例大全(源代码) 第二版(余志龙等著) 文件3

    7. **多线程和异步处理**:在CH08中,可能会讨论如何在Android中进行多线程编程,例如使用AsyncTask或者Handler/Looper机制,以避免阻塞主线程并确保应用流畅运行。 8. **通知(Notification)**:CH09可能涵盖...

Global site tag (gtag.js) - Google Analytics