android Message的简单实例
2014-07-22 17:20
155 查看
android中消息处理机制也是android中的一个基础,跟这个Message相关的还有,Looper和handler。
android中消息处理的步骤(4步):
(1) 实例化一个Looper对象,这个对象中有一个存放message的消息队列,这里还是应该明白的一点是这个looper会自动关联相应的thread,这个类中有相关处理。
(2)实例化一个handler对象,handler中有成员函数handleMessage(),处理收到的消息。
(3)实例化Message对象,Message会调用已经实例化好的handler对象中的obtainMessage(),把数据Data传递给Handler。这时候Message是携带信息的Message了。
(4)调用handler的sendMessage()把这个实例化好的并携带信息的Message发送出去。
消息传递的实例:
// 工作线程完成任务后,将处理的结果告诉UI主线程,主线程再进行UI更新工作。
android中消息处理的步骤(4步):
(1) 实例化一个Looper对象,这个对象中有一个存放message的消息队列,这里还是应该明白的一点是这个looper会自动关联相应的thread,这个类中有相关处理。
(2)实例化一个handler对象,handler中有成员函数handleMessage(),处理收到的消息。
(3)实例化Message对象,Message会调用已经实例化好的handler对象中的obtainMessage(),把数据Data传递给Handler。这时候Message是携带信息的Message了。
(4)调用handler的sendMessage()把这个实例化好的并携带信息的Message发送出去。
消息传递的实例:
// 工作线程完成任务后,将处理的结果告诉UI主线程,主线程再进行UI更新工作。
package test.message; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.util.Log; public class MainActivity extends Activity implements View.OnClickListener { private static final int COMPLETED = 0; private TextView stateText; private Button btn; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { if (msg.what == COMPLETED) { // 收到工作线程处理完工作的消息后,更新UI主线程信息。 stateText.setText("completed"); } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); stateText = (TextView) findViewById(R.id.tv); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); } @Override public void onClick(View v) { new WorkThread().start(); } //工作线程 private class WorkThread extends Thread { @Override public void run() { //......处理比较耗时的操作 Log.i("1","工作线程处理任务"); System.out.println("Running thread !"); //处理完成后给handler发送消息 Message msg = new Message(); msg.what = COMPLETED; //handler将这个处理结果发送给主线程。 handler.sendMessage(msg); } } }
相关文章推荐
- Android简单数据存储类SharedPreferences详解及实例(通过“记住密码”功能学习SharedPreferences)
- Android文本自动提示框的简单应用实例
- Android多媒体学习一:Android中Image的简单实例。
- Android OpenGL 简单实例
- 一个简单实用的Android蓝牙程序实例
- Android JNI简单实例(android 调用C/C++代码)
- android一个简单的线程实例
- Android简单数据存储类SharedPreferences详解及实例(通过“记住密码”功能学习SharedPreferences)
- Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用
- Android文本自动提示框的简单应用实例
- Android上传文件到服务器中的简单实例
- Android的Message,MessageQueue,Looper,Handler详解+实例
- Android多媒体学习一:Android中Image的简单实例。
- 【Android学习日记】(六) SQLite的简单实例
- Android简单数据存储类SharedPreferences详解及实例(通过“记住密码”功能学习SharedPreferences)
- Android简单数据存储类SharedPreferences详解及实例
- Android Handler Message多线程实例
- Android 七 Handler Bundle Message 简单用法
- Android JNI简单实例(android 调用C/C++代码)
- 一个简单涂鸦板的Android开发实例