学习安卓开发,需要学习很多相关的知识,在学习多线程编程及消息机制前,先对多线程以及多线程编程做下了解。多线程是指从软件或者硬件上实现多个线程并发执行的技术,具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。而在Android的应用程序中其支持多线程,然而多线程编程为我们充分利用系统资源提供了便利,同时也为设计复杂UI和耗时操作提供了途径,提升了安卓用户的使用体验。
在安卓应用开发中,会经常遇到需要多线程技术的时候,比如UI显示和数据处理分开。
在现实的应用中经常会遇到这种场景,需要我们新开一个线程来监听数据状态,比如数据的状态的改变、接收和发送等等,那么当发现数据状态改变时通知主线程,这个通知主要是通过消息机制发送消息到主线程,在主线程接收到通知之后进行处理(自定义消息处理接口)。
具体实现如下:
准备线程的创建和消息的处理,在线程的创建以及消息的处理时需要使用到android里面的Handler和Thread类这两个类,在主线程中添加两个成员Handler、Thread,并实现消息的发送和处理:
private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub switch(msg.what){ case 0: //添加自定义消息处理 //... break; default:break; } } }; private Thread MagCardDataListenThread = new Thread(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub while(isMagCardRunning){ try{ Thread.currentThread().sleep(1000); //状态改变时发送消息到主线程 if(magcard.IsGetMagCardData()){ Message msg = new Message(); msg.what = 0; handler.sendMessage(msg); } }catch(InterruptedException e){ e.printStackTrace(); } } } });
启动子线程
MagCardDataListenThread.start();
上文对于线程的创建和消息的处理只需要两步就可以完成一个多线程的框架搭了。在这个过程中需要利用到的两个类Handler和Thread,在这里就不一一说明了,自行了解。
¥10.00
¥179.00
¥90.00