Android Timer编写方式深解

本文介绍了在Android开发中如何正确使用JavaTimer,并通过配合Handler实现线程安全的更新UI操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载:http://developer.51cto.com/art/201001/181040.htm


  • Android手机操作系统是一款基于Linux平台的开源手机操作系统。对于编程人员来说,修改这一操作系统的方法应该很容易就可以掌握。不过中间还是有许多细节需要我们注意。比如写惯java的人可能会认为Android Timer的使用应该如下:

    程序功能很简单:10秒后,SetTitle为“hear me?”,然后,实际上这样做是不行的,这跟Android的线程安全有关!

    Java代码

      
    1. package com.ray.test;   
    2. import java.util.Timer;   
    3. import java.util.TimerTask;   
    4. import android.app.Activity;   
    5. import android.os.Bundle;   
    6. public class JavaTimer extends Activity {   
    7. Timer timer = new Timer();   
    8. TimerTask task = new TimerTask(){   
    9. public void run() {   
    10. setTitle("hear me?");   
    11. }   
    12. };   
    13. public void onCreate(Bundle savedInstanceState) {   
    14. super.onCreate(savedInstanceState);   
    15. setContentView(R.layout.main);   
    16. timer.schedule(task, 10000);   
    17. }   
    18. }   
    19. package com.ray.test;  
    20. import java.util.Timer;  
    21. import java.util.TimerTask;  
    22. import android.app.Activity;  
    23. import android.os.Bundle;  
    24. public class JavaTimer extends Activity {  
    25. Timer timer = new Timer();  
    26. TimerTask task = new TimerTask(){  
    27. public void run() {  
    28. setTitle("hear me?");  
    29. }  
    30. };  
    31. public void onCreate(Bundle savedInstanceState) {  
    32. super.onCreate(savedInstanceState);  
    33. setContentView(R.layout.main);  
    34. timer.schedule(task, 10000);  
    35. }  

    但实际上的用法应该通过配合Handler来实现Android Timer功能的!

    Java代码

      
    1. package com.ray.test;   
    2. import java.util.Timer;   
    3. import java.util.TimerTask;   
    4. import android.app.Activity;   
    5. import android.os.Bundle;   
    6. import android.os.Handler;   
    7. import android.os.Message;   
    8. public class TestTimer extends Activity {   
    9. Timer timer = new Timer();   
    10. Handler handler = new Handler(){   
    11. public void handleMessage(Message msg) {   
    12. switch (msg.what) {   
    13. case 1:   
    14. setTitle("hear me?");   
    15. break;   
    16. }   
    17. super.handleMessage(msg);   
    18. }   
    19. };   
    20. TimerTask task = new TimerTask(){   
    21. public void run() {   
    22. Message message = new Message();   
    23. message.what = 1;   
    24. handler.sendMessage(message);   
    25. }   
    26. };   
    27. public void onCreate(Bundle savedInstanceState) {   
    28. super.onCreate(savedInstanceState);   
    29. setContentView(R.layout.main);   
    30. timer.schedule(task, 10000);   
    31. }   

    Android Timer的相关操作就为大家介绍到这里。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值