现在的位置: 首页 > 综合 > 正文

android Thread

2013年12月09日 ⁄ 综合 ⁄ 共 746字 ⁄ 字号 评论关闭

     安卓平台中多线程应用很广泛,在ui更细、游戏开发和耗时处理(网络通信)等方法都需要多线程。

 1、在android中线程广泛应用,但是有严格的限制。这种限制表现在2个方法:

   a.在 Android ui中能够更新UI元素的线程必须是创建它的线程,而不是其他的线程。

   

    异常会出现在labelTimer。setText 语句,labelTimer是一个TextView控件,更细TextView控件等UI元素必须由创建它的线程更新

 而不能在其他线程中更新。

     

 

   b.在UI等主线程中不能进行网络通信等耗时的处理,必须由一个子线程负责处理,这个是3.0后新追加的。

 

 Handler 和Message

  

 Handler 和Message使用比较多

  Handle是用来处理多个线程直接通信的工具类,Message是在线程间发送信息。

  android.os.Message类有一个obj属性可以携带任可序列化的对象,what属性是制定一个标志,接收

线程方可以通过这个what字段判断是那个线程发送过来的消息。

   android.os.Handle 对象可以通过下面的方法发送信息:

   sendEmptyMessage(int),发送1条空消息

   sendMessage(Message),发送消息,可携带参数

    sendMessageAtTime(Message,long), 未来某一时间点发送消息

    sendMessageDelayed(Message,long),延时N毫秒发送消息

  一个线程发出消息后,另外的线程要接收消息,接收消息是通过重写Handle类的HandleMessage(Message)

 实现的,更新UI元素的HandleMessage(Message)。

 

抱歉!评论已关闭.