Android学习笔记(六)——创建一个新的进程
来源:互联网 发布:华南理工网络教育答案 编辑:程序博客网 时间:2024/04/27 21:35
使用handler并没有创建一个新的进程,没有新的进程必须要开启之后才行(start方法),而是一种假线程,每个创建一个handler就将一个线程和消息队列绑定在一起。
如何创建一个新的进程,看下面的代码:
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.out.println("Activity Id: " + Thread.currentThread().getId());System.out.println("Activity Name: " + Thread.currentThread().getName());//创建一个新的进程,必须使用start方法启动 HandlerThread thread = new HandlerThread("otherThread"); thread.start(); //将新的线程和handler绑定在一起 //每个线程里面都有各一个looper,looper用于循环接受消息 MyHandler myHandler = new MyHandler(thread.getLooper()); //发送message到myhandler中 Message msg = myHandler.obtainMessage(); //将数据放入bundle中,通过消息发送 Bundle bundle = new Bundle(); bundle.putString("name", "gap"); bundle.putInt("age", 23); msg.setData(bundle); msg.sendToTarget(); } class MyHandler extends Handler { public MyHandler() { } public MyHandler(Looper looper) { super(looper); }@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);System.out.println("otherThread Id: " + Thread.currentThread().getId());System.out.println("otherThread Name: " + Thread.currentThread().getName());System.out.println("name--->" + msg.getData().getString("name"));System.out.println("age--->" + msg.getData().getInt("age"));} }
用handlerThread创建一个线程,并用start开始,实现了一个真正的线程,并用Bundle实现数据的传输。
Looper用于循环接受消息的类
由于本人也是刚刚学习Android,很多地方也解释不清楚。
- Android学习笔记(六)——创建一个新的进程
- [网易云课堂]Linux内核分析(六)—— 分析Linux内核创建一个新进程的过程
- Linux内核分析 实验六:分析Linux内核创建一个新进程的过程
- 实验六:分析Linux内核创建一个新进程的过程
- Linux系统创建一个新的进程
- C++创建一个新的进程
- 我的Php学习笔记(六)Mysql简介和创建新的数据库 常用的SQL语句
- MOOC《Linux内核分析》——创建一个新进程的过程
- Linux内核分析——分析Linux内核创建一个新进程的过程
- <7.29>新的起航 android开发笔记(六)
- 【Android笔记 六】Android Sensor感应器介绍(二)线程中刷新UI 一个创建android测力计的例子
- 我的Android笔记(六)——分享一个自己的NumberPicker
- 我的Android笔记(六)——分享一个自己的NumberPicker
- 守护进程(学习笔记六)
- 学习Linux笔记(六)--进程操作
- Android学习笔记之启动一个新的Activity
- (转)Qt Model/View 学习笔记 (四)——创建新的Models
- android 启动新 app 的activity 新进程的创建
- IE这个bug真是弱爆了
- 陪伴我的Android入门--CMD命令查阅资料一
- 当项目组长的一些体会(转载)
- memcpy 和 memmove 有什么区别?
- const的含义及实现机制
- Android学习笔记(六)——创建一个新的进程
- tcp三次握手的过程,accept发生在三次握手哪个阶段?
- 错误日志
- 数组与链表的区别?
- Asp.Net 三层式Web应用程序开发
- 平面上画1999条直线,最多能将平面分成多少部分?
- js返回页面顶部
- Oracle笔记3
- java绘图的基本原理:画一个圆