惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
有赞技术团队
有赞技术团队
宝玉的分享
宝玉的分享
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
D
Docker
T
The Blog of Author Tim Ferriss
罗磊的独立博客
博客园 - 叶小钗
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
月光博客
月光博客
J
Java Code Geeks
Jina AI
Jina AI
博客园 - 【当耐特】
C
Check Point Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
腾讯CDC
Last Week in AI
Last Week in AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
V
Visual Studio Blog

博客园 - looky

5个未来必不可少的IT技能 常用诺基亚S60手机软件应用 常用Android手机软件应用 常用iPhone手机 免费软件应用... Properties Table of Widgets: 简单 申请 msn.com邮箱 @ Android UI --- 设置ProgressBar的颜色 注册国际paypal支付 为何要划扣1美元 详析 照相机捕获照片保存大小以及保存位置的问题 纯代码实现 Android 登陆布局 简单实现显示隐藏密码,在EditText中。 去掉标题栏和系统栏代码实现以及动态设置密码 Android里添加 Menu Android模拟器SD Card映像文件使用方法 Android的源代码结构 Android--输入法篇 Android Service Android开发中保存数据的四种方法方法 android 彻底关闭应用程序 返回键的捕获
Android Timer 更好方法
looky · 2010-06-25 · via 博客园 - looky

Android 的Timer 一般如下面所写
 
Java代码 

  1. Timer timer = new Timer();   
  2. TimerTask task = new TimerTask() {   
  3.     public void run() {   
  4.         Message message = new Message();   
  5.         message.what = 1;   
  6.         handler.sendMessage(message);   
  7.    
  8.     }   
  9.    
  10. };  
 
Java代码 
  1. final Handler handler = new Handler() {   
  2.    
  3.     public void handleMessage(Message msg) {   
  4.         switch (msg.what) {   
  5.         case 1:   
  6.             Log.e("Timer", "Timer");   
  7.             update();   
  8.             break;   
  9.         }   
  10.         super.handleMessage(msg);   
  11.     }   
  12.    
  13. };  
 
Java代码 
  1. protected void onDestroy() {   
  2.     if (timer != null) {   
  3.         timer.cancel();   
  4.         timer = null;   
  5.     }   
  6.     super.onDestroy();   
  7. }  
 
最重要一点是timer.schedule(task, 1000, 5000);如果设置为timer.schedule(task, 5000)是不会工作的。
 
Java代码 
  1. protected void onCreate(Bundle savedInstanceState) {   
  2.     super.onCreate(savedInstanceState);   
  3.     this.setContentView(R.layout.main);   
  4.                                timer.schedule(task, 1000, 5000);   
  5.                 }  
  
但更好的方法是通过下面的代码
 
Java代码 
  1. private Handler handler = new Handler();   
  2.    
  3. private Runnable runnable = new Runnable() {   
  4.    
  5.     public void run() {   
  6.         update();   
  7.         handler.postDelayed(this, 1000);   
  8.     }   
  9.    
  10. };  
 
开始Timer
 
Java代码 
  1. handler.postDelayed(runnable, 1000);  
 
停止Timer
 
Java代码 
  1. handler.removeCallbacks(runnable);  

Android Timer 更好方法 - Tienfook - Tienfooks Blogs.