今天,我想来分享一下自己初用线程的感受,虽然写法略显粗糙,并没有用线程Thread中核心的Looper,MessageQueue消息队列这些知识,正因为是初学线程,所以就只用最基础的来写了,慢慢学习优化改进。

   上一节“Android中Thread的2种实现方法”中介绍过Android中Thread的2种实现方法,今天我用的是后一种,通过实现Runnable接口来实现我刷新聊天消息的线程RefreshThread。

 1 private class RefreshThread implements Runnable{ 
 2         private int await = 0; 
 3         private boolean flag = true; 
 4         @Override 
 5         public void run() { 
 6             while (flag) { 
 7                 try { 
 8                     Message message =new Message(); 
 9                     message.what = 1; 
10                     handler.sendMessage(message); 
11                     Thread.sleep(await()); 
12                 } catch (InterruptedException e) { 
13                     e.printStackTrace(); 
14                 } 
15             }    
16         } 
17         public void setFlag(boolean flag) { 
18             this.flag = flag; 
19         } 
20         public long await(){ 
21             if(await > 13){ 
22                 return 60000L; 
23             } 
24             if (await > 6) { 
25                 return 20000L; 
26             } 
27             return await < 3 ? 10000L:15000L; 
28         } 
29        public void setAwait(int await) { 
30             this.await = await; 
31         } 
32         public void ascAwait(){            
33             await ++; 
34         } 
35      }
RefreshThread

相关文章: