今天,我想来分享一下自己初用线程的感受,虽然写法略显粗糙,并没有用线程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 }