zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android的注意点

Android 注意
2023-09-11 14:16:43 时间

1.使用Message.callback

 

[java] view plaincopy
 
  1. Message msg = Message.obtain(myThreadHandler,new Runnable() {  
  2.       
  3.     @Override  
  4.     public void run() {  
  5.         Log.d(Constant.TAG, MessageFormat.format("Thread[{0}]--myThreadHandler.Message.callback.run",  
  6.                 Thread.currentThread().getName()));   
  7.     }  
  8. });  
  9. myThreadHandler.sendMessage(msg);  

 

2.使用Handler.post

 

[java] view plaincopy
 
  1. myThreadHandler.post(new Runnable() {  
  2.                       
  3.                     @Override  
  4.                     public void run() {  
  5.                         Log.d(Constant.TAG, MessageFormat.format("Thread[{0}]--myThreadHandler.Message.callback.run",  
  6.                                 Thread.currentThread().getName()));   
  7.                     }  
  8.                 });  

 

注:对于Handler机制相关测试,我写了一个测试类:

http://download.csdn.net/source/3275970

3.Handler对Activity finish影响。

在开发的过程中碰到一个棘手的问题,调用Activity.finish函数Acitivity没有执行生命周期的ondestory函数,后面查找半天是因为有一个handler成员,因为它有一个delay消息没有处理,调用Activity.finish,Activity不会马上destory,所以记得在Ativity finish前清理一下handle中的未处理的消息,这样Activity才会顺利的destory