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

<manifestxmlns: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>

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

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

</intent-filter>

</activity>

</application>

</manifest>

--------------------------------------------Layoutactivity_main.xml-----------------------------

<LinearLayoutxmlns: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--------------------------------------

packagecom.ch22;

importandroid.app.Activity;

importandroid.graphics.Color;

importandroid.os.Bundle;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.util.Log;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

/**

*

*项目名称:com.ch22

*类名称:MainActivity

*类描述:Handler

*创建人:方勇

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

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

*/

publicclassMainActivityextendsActivity{

privateButtonbtn;

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

privateHandlerhandler=newHandler(){

/*异步接受消息*/

@Override

publicvoidhandleMessage(Messagemsg){

super.handleMessage(msg);

/*获取Map数据*/

Bundlebundle=msg.getData();

/*取得颜色值*/

intcolor=bundle.getInt("color");

MainActivity.this.btn.setBackgroundColor(color);

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

}

};

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

findView();

setListeners();

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

}

/*实例化UI*/

privatevoidfindView(){

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

}

/*设置监听*/

privatevoidsetListeners(){

btn.setOnClickListener(newbtnOnClickListener());

}

classbtnOnClickListenerimplementsOnClickListener{

publicvoidonClick(Viewv){

MyThreadmy=newMyThread();

/*启动线程*/

newThread(my).start();

}

};

classMyThreadimplementsRunnable{

publicvoidrun(){

try{

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

}catch(InterruptedExceptione){

e.printStackTrace();

}

/*实例化消息*/

Messagemsg=newMessage();

Bundlebundle=newBundle();

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

msg.setData(bundle);

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

MainActivity.this.handler.sendMessage(msg);

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

}

};

}

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

点击按钮前

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

<!--EndFragment-->

更多相关文章

  1. Android实时获得周围wifi信息(SSID,强度等)
  2. android 程序分享。。
  3. android图片切换ImageSwichter的动画切换效果
  4. android图片切换ImageSwichter的动画切换效果
  5. 安装Android(安卓)Studio——Installing Android(安卓)Studio
  6. android layout 属性大全
  7. Android(安卓)layout属性大全
  8. Android(安卓)基本概念
  9. Android中的六大布局

随机推荐

  1. 这些年正Android(安卓)- 大纲
  2. Android控件属性大全[整理]
  3. Android中使用WebView, WebChromeClient
  4. Android[项目] Android天气预报
  5. Android手势ImageView三部曲 第三部
  6. Android之Adapter用法总结
  7. Android(安卓)网络请求库Retrofit简单使
  8. Android学习资源-retrofit,eventBus,butter
  9. 关于调试的一个问题
  10. Android开发环境搭建