mars老师《Android开发视频教程》_01_15 handler的使用(二)视频源码
2012-05-20 17:51
417 查看
主要内容:
1.Handler与线程
2.Bundle的用法
3.在新线程中处理消息的方法
创建项目:HandlerTest2
=>>HandlerTest.java
=>>HandlerTest2.java
1.Handler与线程
2.Bundle的用法
3.在新线程中处理消息的方法
创建项目:HandlerTest2
=>>HandlerTest.java
package mars.handler; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.SystemClock; public class HandlerTest extends Activity { private Handler handler = new Handler(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // sendMessage(); //handler.post(r); setContentView(R.layout.main); Thread t = new Thread(r); t.start(); System.out.println("activity--->" + Thread.currentThread().getId()); System.out.println("activityname--->" + Thread.currentThread().getName()); } Runnable r = new Runnable(){ @Override public void run() { // TODO Auto-generated method stub System.out.println("handler--->" + Thread.currentThread().getId()); System.out.println("handlername--->" + Thread.currentThread().getName()); try { Thread.sleep(10000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }; }
=>>HandlerTest2.java
package mars.handler; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Message; public class HandlerTest2 extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); //打印了当前线程的ID System.out.println("Activity-->" + Thread.currentThread().getId()); //生成一个HandlerThread对象,实现了使用Looper来处理消息队列的功能,这个类由Android应用程序框架提供 HandlerThread handlerThread = new HandlerThread("handler_thread"); //在使用HandlerThread的getLooper()方法之前,必须先调用该类的start(); handlerThread.start(); MyHandler myHandler = new MyHandler(handlerThread.getLooper()); Message msg = myHandler.obtainMessage(); //将msg发送到目标对象,所谓的目标对象,就是生成该msg对象的handler对象 Bundle b = new Bundle(); b.putInt("age", 20); b.putString("name", "Jhon"); msg.setData(b); msg.sendToTarget(); } class MyHandler extends Handler{ public MyHandler(){ } public MyHandler(Looper looper){ super(looper); } @Override public void handleMessage(Message msg) { Bundle b = msg.getData(); int age = b.getInt("age"); String name = b.getString("name"); System.out.println("age is " + age + ", name is" + name); System.out.println("Handler--->" + Thread.currentThread().getId()); System.out.println("handlerMessage"); } } }
相关文章推荐
- mars老师《Android开发视频教程》_01_15 handler的使用(二)视频源码
- mars老师《Android开发视频教程》_01_14 handler的使用(一)视频源码
- mars老师《Android开发视频教程》_01_14 handler的使用(一)视频源码
- mars老师[Android开发视频教学].01_16_SQLite使用方法 视频源码
- mars老师[Android开发视频教学].01_16_SQLite使用方法 视频源码
- Mars Android视频学习笔记——01_14/15_Handler的使用
- mars老师[Android开发视频教学].01_18 文件下载 源码
- mars老师[Android开发视频教学].01_18 文件下载 源码
- mars老师[Android开发视频教学].01_18 文件下载 源码
- 学习笔记001之[Android开发视频教学].01_15_Handler的使用(二)
- Android 进阶15:HandlerThread 使用场景及源码解析
- mars老师[Android开发视频教学] 01_21 广播机制(1)
- mars老师 [Android视频教学]01_20 XML解析
- mars老师[Android开发视频教学] 01_21 广播机制(1)
- mars老师 [Android视频教学]01_20 XML解析
- mars老师[Android开发视频教学]01_23 WIFI网络操作
- mars老师[Android开发视频教学]01_23 WIFI网络操作
- 哪些年遇到过的Andriod问题(15)注册广播服务,如果你看过MARS老师的视频,还是不算了吧,这是纯COPY的
- 01_14/15:Handler的使用
- mars老师[Android开发视频教学]01_24 Socket编程