`

Android Timer的用法示例

阅读更多

写惯java的人可能会认为Timer的使用应该如下:

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

package com.ray.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;

public class JavaTimer extends Activity {

	Timer timer = new Timer();
	TimerTask task = new TimerTask(){

		public void run() {
	        setTitle("hear me?");
		}
		
	};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        timer.schedule(task, 10000);
    }
}

 

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

package com.ray.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class TestTimer extends Activity {

	Timer timer = new Timer();
	Handler handler = new Handler(){

		public void handleMessage(Message msg) {
			switch (msg.what) {    
			case 1:    
				setTitle("hear me?");
				break;    
			}    
			super.handleMessage(msg);
		}
		
	};
	TimerTask task = new TimerTask(){

		public void run() {
			Message message = new Message();    
			message.what = 1;    
			handler.sendMessage(message);  
		}
		
	};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        timer.schedule(task, 10000);
    }
}

 

分享到:
评论
4 楼 lordhong 2009-07-16  
最好通过Handler来实现.  Timer/Thread这些不建议
3 楼 newyoung 2009-07-16  
像SwingUtilities里面的 invokelater
2 楼 方世玉 2009-07-15  
写惯java的人可能会认为Timer的使用应该如下:?

楼主说法不对吧。Swing里面的线程更新也是需要通过UI的线程来更新的,因为界面的控件都不是线程安全的。
1 楼 ue2001 2009-07-14  
<pre name="code" class="java">package com.ray.test;

import java.util.Timer;
import java.util.TimerTask;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;

public class TestTimer extends Activity {

Timer timer = new Timer();
TimerTask task = new TimerTask(){
public void run() {
    runOnUiThread(new Runnable(){
@Override
public void run() {
setTitle("hear me?");
}});
    }
};
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        timer.schedule(task, 10000);
    }
}</pre>
<p> 这样也可以执行UI的动作</p>
<p> </p>

相关推荐

    Android Timer Task Demo

    本篇将详细介绍如何在Android中使用`TimerTask`来实现定时任务,并通过一个简单的Demo进行示例说明。 `TimerTask`是Java提供的一个定时执行任务的类,它继承自`Runnable`接口。创建一个`TimerTask`对象,然后将其...

    android中timer的使用

    以下是一个简单的`Timer`使用示例: ```java Timer timer = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // 在这里编写需要执行的任务代码 Log.d("TAG", "任务被执行"); ...

    Android代码-AndroidTimer

    `AndroidTimer`项目就是一个专门针对这种需求的示例,它提供了精准到毫秒的计时功能,并且使用了ToggleButton来控制计时状态。下面我们将详细探讨这个项目的实现方式和关键知识点。 1. **计时器基础** 在Android中...

    android timer

    `mycounttime`可能是一个示例项目,演示了如何使用`Timer`实现计时器功能。该项目可能包括了一个简单的计时界面,随着时间的流逝显示倒计时。通过查看项目源码,我们可以学习到如何结合`Timer`和`TextView`更新倒...

    Android---Service Timer之执行周期任务

    在项目中,`refreshDemo`可能是一个演示如何使用Service和Timer执行周期任务的示例应用。这个应用可能包含了一个自定义的Service,它在启动后使用Timer定期执行某些刷新操作,例如更新UI或者从网络获取数据。 总结...

    android-timer:Android 计时器示例

    本示例“android-timer”将详细展示如何在Android应用中使用计时器及其相关类,如`Timer`, `TimerTask`, 和 `Handler`。下面我们将深入探讨这些知识点。 1. **Timer类**: `java.util.Timer` 类是用于调度任务的类...

    Android RxJava创建操作符Timer的方法

    本文将详细介绍 Android RxJava 创建操作符 Timer 的方法,并提供相应的代码示例。 Timer 操作符的基本用法 在 RxJava 中,Timer 操作符可以通过 `Observable.timer()` 方法来创建。该方法可以接受三个参数:延迟...

    android_timer_倒數計時

    在这个名为"android_timer_倒數計時"的简单示例中,我们将深入探讨如何在Android应用中创建一个倒计时器。 首先,`CountDownTimer`类是`java.util.Timer`类的一个子类,它提供了一个更加面向对象的计时接口。创建一...

    android 广告位的Timer定时刷新和按钮的浮动显示(3秒消失)

    以下是一个简单的`Timer`使用示例: ```java Timer timer = new Timer(); timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { // 在这里更新广告位的内容,如重新加载网络广告或者切换...

    Timer小工程文件

    【描述】中提到,该示例设计得非常基础,旨在帮助初学者理解Timer的用法。这表明,项目可能包含清晰的注释和简单的逻辑,以便初学者能够轻松跟随和学习。同时,它警告高级开发者可能不会发现新内容,暗示这个示例...

    Android 倒计时——Timer和CountDownTimer的使用,实现启动,暂停,继续,重复,重设时长以及启动service后台倒计时

    本文将深入探讨如何使用`Timer`和`CountDownTimer`这两个类来实现倒计时,并且讲解如何进行启动、暂停、继续、重复以及重设时长的操作。此外,还将介绍如何在后台通过`Service`进行倒计时,以确保应用即使在后台运行...

    Alert和Timer编程范例

    以上就是关于Alert和Timer的基本介绍及其在Java手机应用开发中的使用示例。理解并熟练掌握这两个工具,将有助于你构建更高效、更用户友好的应用程序。在实际项目中,你可以根据需求调整代码,以实现更复杂的逻辑和...

    解析Java中的Timer和TimerTask在Android中的用法和实例

    在Android中使用Timer和TimerTask,通常会结合Handler来更新UI。因为TimerTask在后台线程中执行,不能直接修改UI,所以我们需要通过Handler将消息传递到主线程进行处理。以下是一个简单的示例: ```java public ...

    blog_android_timer:Android倒数计时器的示例代码

    这个“blog_android_timer”项目是一个专门展示如何在Android应用中实现倒计时功能的示例代码。接下来,我们将深入探讨其中涉及的关键知识点。 首先,`CountDownTimer`类是Android SDK提供的一种用于计时的工具类,...

    android-timer:这是创建带有“开始”和“暂停”按钮的简单Android计时器的示例

    这个“android-timer”项目就是一个简单的实例,它演示了如何在Android应用程序中创建一个具备“开始”和“暂停”功能的计时器。我们将探讨其中涉及的关键知识点,包括UI设计、事件监听、计时器的实现以及状态管理。...

    android-Timer:已弃用-提交a95d804c252cd68b82cbe5fc68b8bd62941e86ae

    在描述中提到"Android Timer示例此样本已弃用",意味着这个特定的代码示例不再适用于最新的Android开发实践,可能是因为它使用了已被废弃的API或者存在性能问题。对于开发者来说,了解为何`Timer`在Android中不再...

    Android定时器和线程实现

    在提供的`ThreadDemo`示例中,可能包含了如何在Android中使用线程和定时器的具体代码实现,这将有助于加深对这两个概念的理解。通过分析和学习这个示例,你可以更好地掌握在实际项目中如何运用这些技术。记得实践是...

    Android Framelayout显示静态和动态的扑克牌

    文件名为"008_Framelayout"的压缩包可能包含了示例代码或者教程资源,里面可能有详细的布局配置、`Handler`和`Timer`的使用示例,以及可能的图片资源。为了实现这个功能,开发者可能需要了解XML布局文件的编写,包括...

    通过progressbar监控以timer计时控制开始与结束的任务

    以下是一个简单的Java示例,展示了如何使用`Timer`和`ProgressBar`: ```java import java.awt.*; import javax.swing.*; import java.util.Timer; import java.util.TimerTask; public class ProgressBarDemo { ...

    RxJava-Android-Samples学习RxJava的示例.rar

    RxJava是一种在Android开发中广泛使用的库,它将函数式编程和反应式编程的理念结合在一起,为异步处理和事件驱动编程提供了强大的工具。这个"RxJava-Android-Samples"项目是一个很好的资源,用于深入理解如何在实际...

Global site tag (gtag.js) - Google Analytics