TimerTaskActivity
package org.wp.activity;
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.view.View;
import android.widget.Button;
import android.widget.TextView;
public class TimerTaskActivity extends Activity {
/** Handler对象 **/
private Handler iHandler;
/** 开启Timer **/
private Button startButton = null;
/** 关闭Timer **/
private Button closeButton = null;
/** 显示内容 **/
private TextView myTextView = null;
/** Timer对象 **/
private Timer timer = null;
/** TimerTask对象 **/
private TimerTask timerTask = null;
/** 执行Timer标识 **/
private static final int LOAD_PROGRESS = 0;
/** 关闭Timer标识 **/
private static final int CLOSE_PROGRESS = 1;
/** TimerId **/
private int mTimerId = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer);
addMessageHandler();
startButton = (Button) this.findViewById(R.id.startButton);
closeButton = (Button) this.findViewById(R.id.closeButton);
myTextView = (TextView) this.findViewById(R.id.myTextView);
myTextView.setText("点击按钮开始更新TimerId");
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startTimer();
}
});
closeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
closeTimer();
}
});
}
private void addMessageHandler() {
iHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case LOAD_PROGRESS:
myTextView.setText("当前TimerId为" + msg.arg1);
break;
case CLOSE_PROGRESS:
myTextView.setText("当前Timer已经关闭请重新开启");
break;
}
super.handleMessage(msg);
}
};
}
private void startTimer() {
if (timerTask == null) {
timerTask = new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.what = LOAD_PROGRESS;
msg.arg1 = (int) (++mTimerId);
iHandler.sendMessage(msg);
}
};
timer = new Timer();
// schedule(TimerTask task, long delay, long period)
// 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。
// task - 所要安排的任务。
// delay - 执行任务前的延迟时间,单位是毫秒。
// period - 执行各后续任务之间的时间间隔,单位是毫秒。
timer.schedule(timerTask, 1000, 1000);
}
}
private void closeTimer() {
if (timer != null) {
timer.cancel();
timer = null;
}
if (timerTask != null) {
timerTask = null;
}
mTimerId = 0;
iHandler.sendEmptyMessage(CLOSE_PROGRESS);
}
}
timer.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="开启TimerTask"
android:id="@+id/startButton" />
<Button android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="关闭TimerTask"
android:id="@+id/closeButton" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/myTextView" />
</LinearLayout>
分享到:
相关推荐
Android中使用定时器TimerTask类介绍.txt Android中使用定时器TimerTask类介绍.txt
主要介绍了Android TimerTask 的简单应用及注意事项的相关资料,需要的朋友可以参考下
下面是一个在Android中使用定时器Timer和TimerTask的启动,停止,暂停,继续等操作的demo。 需要注意的问题主要有两点: 1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句 2、只能在UI主线程中更新...
今天讲下如何定时执行后台任务。 主要使用到TimerTask,相信大家都用过,大家可以看下TimerTask的源码。这里是一个简单的TimerTaskDemo。
利用jdk中的timer和timertask来实现,每天定时执行的任务。
今天讲下如何定时执行后台任务。 当然还是那句话,方法有好几种,这里就讲下我认为最好用的。...主要使用到TimerTask和Service,相信大家都接触过,大家可以看下TimerTask的源码。这里是一个简单的TimerTaskDemo。
Android Timer TimerTask Handler 三者结合实现 数据更新与View更新的同步。 一个不错的机制。
1、查看网络上的图片 2、主线程阻塞-ANR 3、刷新UI-Handler 4、在本地缓存图片-例如微信的图片 5、获取开源代码 6、显示一个新闻客户端 7、使用GET方式提交表单数据 8、使用POST方式提交表单
本篇文章主要介绍了解析Java中的Timer和TimerTask在Android中的用法,主要介绍了Timer和TimerTask的用法,有需要的可以了解一下。
封装的定时器
在项目开发中,往往 要用到图片播放的效果,今天就用TimerTask和ImageView是实现简单的图片播放效果。 其中,TimerTask和Timer结合一起使用,主要是利用TimerTask的迭代延时等时间段处理事件的机制。
用Handler和Timertask实现一个简单的定时器,一个简单的demo
android ui thread timeTask
1 schedule(TimerTask task, Date when) 2 schedule(TimerTask task, long delay) 3 schedule(TimerTask task, long delay, long period) 4 schedule(TimerTask task, Date time, long period)
一个不错的android入门实例源码,亲测可用
作者StrongX,源码XTimer,你可以像和NSTimer一模一样的初始化方法来使用XTimer,但是你用再担心是否会发生内存泄漏,以及RunLoop的问题。 同时XTimer还能够暂停、重新启动,这都是NSTimer不具备的
Android Framelayout显示静态和动态的扑克牌 包含Handler 和Timer TimerTask的使用方法
android 中定时器的3个实现方法(均测试通过) 一、采用Handler与线程的sleep(long)方法 二、采用Handler的postDelayed(Runnable, long)方法 三、采用Handler与timer及TimerTask结合的方法
Android 酷炫倒计时 源码.使用自定义View,TimerTask和Handler 协作实现