android学习14#--Handler消息传递机制实例应用
来源:互联网 发布:画漫画的软件 编辑:程序博客网 时间:2024/06/10 12:08
上一篇android学习13#–Handler消息传递机制讲了它的原理,本文写两个例子来巩固下。例子比较简单。
主线程创建Handler
功能:UI线程创建一个handler,通过定时器周期性发送消息给UI线程,UI线程收到消息调整文字字体大小。
xml布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.uudou.study.handleronuithread.MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="测试文字" android:id="@+id/textView" android:layout_gravity="center_horizontal" /> </LinearLayout></RelativeLayout>
activity源码:
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final TextView tText = (TextView) findViewById(R.id.textView); /*主线程创建handler*/ final Handler tHandle = new Handler() { public float tSize=32; @Override public void handleMessage(Message msg) { if (msg.what == 0x123) { super.handleMessage(msg); this.tSize++; if (this.tSize > 100) this.tSize = 32; tText.setText("测试文字[size:" + (int) this.tSize + "]"); tText.setTextSize(this.tSize); } } }; /*创建一个定时器,周期性执行指定任务*/ new Timer().schedule(new TimerTask() { @Override public void run() { tHandle.sendEmptyMessage(0x123); } }, 0, 1000); }}
效果图:
在新线程中创建handler
功能:创建一个线程类,在新线程中创建一个handler,UI线程往新线程发送消息,新线程收到消息打印收到一个消息。打印出来
xml布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.uudou.study.handleronnewthread.MainActivity"> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送消息" android:id="@+id/button" android:layout_gravity="center_horizontal" android:onClick="onClickButton" android:textSize="32dp" /> </LinearLayout></RelativeLayout>
activity源码:
//NewThread.java/** * Created by jindg on 16-7-11. */public class NewThread extends Thread { protected Handler tHandler; Handler gettHandler() { return tHandler; } @Override public void run() { Looper.prepare(); this.tHandler = new Handler() { float tSize = 32; @Override public void handleMessage(Message msg) { super.handleMessage(msg); if(msg.what == 0x123) { Log.d("NewThread", "NewThread接收Handler消息"); } } }; Looper.loop(); }}//MainActivity.javapublic class MainActivity extends AppCompatActivity { Handler tHandler; NewThread tThread; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tThread = new NewThread(); tThread.start(); } public void onClickButton(View source) { this.tHandler = tThread.gettHandler(); this.tHandler.sendEmptyMessage(0x123); Log.d("NewThread", "UI线程发送Handler消息"); }}
效果图:
0 0
- android学习14#--Handler消息传递机制实例应用
- android学习13#--Handler消息传递机制
- Handler消息传递机制学习
- Android Handler消息传递机制
- Android Handler消息传递机制
- android Handler 消息传递机制
- Android Handler消息传递机制
- android Handler 消息传递机制
- Android:Handler消息传递机制
- Android Handler消息传递机制
- android消息传递机制---handler
- Android消息传递机制----Handler
- Android Handler消息传递机制
- android--------Handler 消息传递机制
- Android消息传递之Handler消息机制
- Android消息传递之Handler消息机制
- Android消息传递之Handler消息机制
- android学习之——Handler消息传递机制
- 安卓手册 第六章(开发之EditText)
- 70. Climbing Stairs
- POJ 3154 贪心
- c语言==简介及相关常识(3)
- 经典蓝牙连接-蓝牙音箱或蓝牙耳机
- android学习14#--Handler消息传递机制实例应用
- scrollview嵌套gridview:scrollview不是置顶显示
- [iOS] 文字描边方法
- 关于android报表的制作
- 打电话,发短息,打开网页
- 求两个数的最大公约数
- Matlab BMP图像如何能运行在处理RAW图像程序中
- Android开发者应该使用FlatBuffers替代JSON?
- BZOJ 1115: [POI2009]石子游戏Kam