android 再谈定时器 timer 每秒更新一次!

以前学习java定时器的时候有下面的文章:

一,要定时执行的任务:

package com.fpi;

public class TimerTaskTest extends java.util.TimerTask

{

@Override

public void run()

{

System.out.println("start~~");

}

}

二,执行这个任务:
package com.fpi;
import java.util.Timer;
public class TimerTest

{
public static void main(String args[])
{
Timer timer = new Timer();
timer.schedule(new TimerTaskTest(), 1000,2000);
}
}
三,运行结果:
每2秒打印一个start~~
start~~
start~~
............

其实也可以把上面的两个步骤放到一个类中去写,代码如下:

package com.fpi; import java.util.Timer; public class TimerTest { public static void main(String args[]) { Timer timer = new Timer(); timer.schedule(new TimerTaskTest() { @Override public void run() { System.out.println("start~~"); } }, 1000, 2000); } }

下面就按照上面的两种方法在android中分别实现。这个小demo的功能就是实现每秒更新一下textview。

第一种分开写的方式,在android下面不太常用,就不过多介绍了。 

第二种放在一起写的代码如下:

package com.my; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.widget.TextView; public class TimerDemo extends Activity { private String tag = "@@@"; Timer timer = new Timer(); private int i = 0; private TextView text = null; private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); int msgId = msg.what; Log.e(tag, msgId + ""); switch (msgId) { case 1: text.setText(getResources().getText(R.string.timer_task_print) .toString() + i); i++; break; default: break; } } }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setView(); setTimerTask(); } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); timer.cancel(); } private void setView() { text = (TextView) findViewById(R.id.text); } private void setTimerTask() { timer.schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub Message message = new Message(); message.what = 1; handler.sendMessage(message); } }, 0, 1000); } }

 运行结果如下:

1  2

转载于:https://www.cnblogs.com/boyupeng/archive/2011/04/13/2028525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值