Android定时器Demo

这几天一直忙简历和面试。都没敲代码。

面试四家,都没消息。

周五,估计没面试电话,还是静下来敲代码吧。

练习下定时器,要不要说想写个天气预报。。。

好吧,看看能不能坚持下来。加油,骚年。

准备使用服务,定时器请求天气数据,以前只是听,从来没写过定时器代码,看看网上demo 一次搞定。

注释感觉还可以,贴代码:

复制代码
  1 package com.wangyyworks.weatherworks;
  2 
  3 import java.util.Timer;
  4 import java.util.TimerTask;
  5 
  6 import android.os.Bundle;
  7 import android.os.Handler;
  8 import android.os.Message;
  9 import android.app.Activity;
 10 import android.content.res.ColorStateList;
 11 import android.graphics.Color;
 12 import android.view.Menu;
 13 import android.view.View;
 14 import android.widget.TextView;
 15 import android.widget.Toast;
 16 
 17 /**
 18  * 2013-6-7 13:36:59 
 19  * 定时器练习
 20  * @author wang_xiaohao
 21  *
 22  */
 23 public class HomeActivity extends Activity {
 24 
 25     private Handler handler;// 创建Handler;
 26     public final int TIMETASKDEME = 1;// Message 为1时候 更新UI 文字
 27     private TextView cheangetext;
 28     private int time = 1;
 29     private boolean isTimeStart;//添加标记,方式多次开启定时器,时间会乱。。。。
 30 
 31     @Override
 32     protected void onCreate(Bundle savedInstanceState) {
 33         super.onCreate(savedInstanceState);
 34         setContentView(R.layout.activity_home);
 35 
 36         inteId();
 37 
 38         /**
 39          * Handler 更新UI
 40          */
 41         handler = new Handler() {
 42 
 43             @Override
 44             public void handleMessage(Message msg) {
 45                 // TODO Auto-generated method stub
 46                 super.handleMessage(msg);
 47                 switch (msg.what) {
 48                 case 1:
 49                     cheangetext.setTextColor(Color.RED);
 50                     cheangetext.setText("每隔一秒更新一次,这是第" + time++ + "秒了~");
 51                     break;
 52                 }
 53                 super.handleMessage(msg);
 54             }
 55 
 56         };
 57 
 58     };
 59 
 60     /**
 61      * 加载ID findviewbyid
 62      */
 63     private void inteId() {
 64         // TODO Auto-generated method stub
 65 
 66         cheangetext = (TextView) findViewById(R.id.cheangetext);
 67 
 68     }
 69 
 70     @Override
 71     public boolean onCreateOptionsMenu(Menu menu) {
 72         // Inflate the menu; this adds items to the action bar if it is present.
 73         getMenuInflater().inflate(R.menu.activity_home, menu);
 74         return true;
 75     }
 76 
 77     /**
 78      * 2013-6-7 13:00:0 测试定时器,服务后期定时请求数据
 79      * 
 80      * @param view
 81      */
 82     public void timetask(View view) {
 83         
 84         
 85         
 86         if (!isTimeStart) {
 87             Toast.makeText(getApplicationContext(), "开启定时器每一秒执行一次", 0).show();
 88             
 89             // 创建定时器
 90             TimerTask task = new TimerTask() {
 91 
 92                 @Override
 93                 public void run() {
 94                     // TODO Auto-generated method stub
 95                     Message message = new Message();
 96                     message.what = 1;
 97                     handler.sendMessage(message);
 98                 }
 99             };
100 
101             Timer timer = new Timer(true);
102             timer.schedule(task, 1000, 1000); // 延时1000ms后执行,1000ms执行一次
103         }
104         
105         isTimeStart = true;//修改标记为true,防止第二次开启;
106         
107     }
108 
109 }
复制代码

第一次出现问题,多次点击后数字乱了。。。

添加了标记:isTimeStart搞定。

布局一个button 一个textview

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".HomeActivity" >
     
    <Button
        android:onClick="timetask"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="测试定时器" />
     
    <TextView
        android:id="@+id/cheangetext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40sp"
        android:text="显示文字" />
 
</LinearLayout>

 

接下来,该请求数据了。。。

顺带make下 miui 截图位置:I:\MIUI\screen_cap

加油,不然媳妇都娶不来,骚年。

截个图:

posted @   wang_xiaohao  阅读(921)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示