zoukankan      html  css  js  c++  java
  • Android Timer编写方式深解

      许多编程人员都会认为,Android Timer的实现方法比较简单,其实真正的草率做起来并非如此。我们在这里就为大家介绍一下这方面的相关知识。

    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的相关操作就为大家介绍到这里。

  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/carbs/p/2575409.html
Copyright © 2011-2022 走看看