Android主线程如何向分线程发送消息
来源:互联网 发布:数学画图软件 编辑:程序博客网 时间:2024/06/02 05:09
在平时开发过程中利用handler发送消息,一般都是分线程向主线程发送消息,然后改变UI,但分线程如何向主线程发送消息的呢,大致流程是这样的,首先创建一个分线程类,或者直接内部类也可以,然后让这个类继承Thread,重写他的run方法,在run方法里面去new Handler,把这个Hnadler变为全局,重写handleMessage(android.os.Message msg)方法。然后在主线程中用这个类或者对象开启线程后调他的属性Handler,发送消息,这样就是大致步骤。
但需要注意的是,有些情况下会报空指针,可能会报类为空,或者类的handler为空,主要是因为因为分线程与发送handler是不可控的,也许线程正在开启hanlder就已经发送消息了,这样就会造成空指针。
为了避免这种情况发送需要根据自己的业务逻辑进行调整,就是开启线程后发送handler必须有点时间间隔,这样就能避免出现空指针情况。
看代码,首先写一个分线程类:
public class Thread01 extends Thread {public Handler mHandler;public void initStart() { start();}@Overridepublic void run() { // TODO Auto-generated method stub super.run(); Looper.prepare(); mHandler = new Handler() { public void handleMessage(android.os.Message msg) { switch (msg.what) { case Conts.SUCCESS: Log.e("TAG", "数据: " + (String) msg.obj); break; } } }; Looper.loop();}}
主线程里发送消息,在Thread01类里面的run方法里接收,为了避免空指针可以根据需求点击按钮发送消息或者是开启线程后sleep一秒,我这里为了简单直接在onStart()方法里去发送消息。
public class MainActivity extends Activity {private Intent serviceIntent;private Thread01 thread01;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); thread01 = new Thread01(); thread01.initStart();}@Overrideprotected void onStart() { // TODO Auto-generated method stub if (thread01 != null && thread01.mHandler != null) { thread01.mHandler.obtainMessage(Conts.SUCCESS, "数据--------").sendToTarget(); }}}
阅读全文
0 0
- Android主线程如何向分线程发送消息
- Android:主线程如何向子线程发送消息
- android主线程向子线程发送消息
- Android主线程向子线程发送消息
- Android:子线程向UI主线程发送消息
- Android子线程向主线程发送消息实现
- android 子线程向主线程发送消息
- Handler(15):工作线程向主线程发送消息
- 工作线程中利用handler向主线程发送消息
- Handler从主线程向子线程发送消息
- 用handler子线程向主线程发送消息和主线程向子线程发送消息
- Android用Handler让主线程向子线程发送消息
- Android主线程向子线程中发送信息
- Android主线程向子线程中发送信息
- 【Android】从主线程向子线程发消息
- Android 主线程和线程之间相互发送消息
- Android 主线程和线程之间相互发送消息
- Android子线程给主线程发送消息
- 剑指offer 05 从尾到头打印链表
- Java简介
- DNS域名解析过程
- app项目经验总结
- 简易正则匹配,实现*和?
- Android主线程如何向分线程发送消息
- js获取手机型号和手机操作系统版本号
- qsort函数用法说明2
- 2.1.24—线性表—Single Number II
- 字符串
- HTML/css理解before:after:学习之-导航条案例2
- Ajax上传文件
- 数据结构——复习C语言
- 求素数(普通+筛选)