Android  TimerTask 的简单应用及注意事项

Android应用开发中常常会用到定时器,不可避免的需要用到 TimerTask 定时器任务这个类

下面简单的一个示例演示了如何使用TimerTask

这个示例演示了3秒未有触屏事件发生则锁屏(只是设置下文本,意思一下)有触屏事件则解除锁定

public class ColTimerTaskActivity extends Activity {

/** Called when the activity is first created. */

private final String TAG = "ColTimerTaskActivity";

private final int EVENT_LOCK_WINDOW = 0x100;

private TextView textView;

private Handler mHandler;

private Timer mTimer;

private MyTimerTask mTimerTask;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

textView = (TextView)findViewById(R.id.textview);

mHandler = new Handler(){

public void handleMessage(Message message){

Log.i(TAG,"message what = " + message.what);

if (message.what == 0x100){

lockWindow();

}

}

};

mTimer = new Timer(true);

resumeWindow();

StartLockWindowTimer();

}

public boolean onTouchEvent(MotionEvent event)

{

// TODO Auto-generated method stub

resumeWindow();

StartLockWindowTimer();

return super.onTouchEvent(event);

}

public void resumeWindow(){

textView.setText("main window");

}

public void lockWindow(){

textView.setText("lock window");

}

public void StartLockWindowTimer(){

if (mTimer != null){

if (mTimerTask != null){

mTimerTask.cancel(); //将原任务从队列中移除

}

mTimerTask = new MyTimerTask(); // 新建一个任务

mTimer.schedule(mTimerTask,3000);

}

}

class MyTimerTask extends TimerTask{

@Override

public void run() {

// TODO Auto-generated method stub

Log.i(TAG,"run...");

Message msg = mHandler.obtainMessage(EVENT_LOCK_WINDOW);

msg.sendToTarget();

}

}

}

这里需要注意两个问题:

if (mTimerTask != null){

mTimerTask.cancel(); //将原任务从队列中移除

}

每次放定时任务前,确保之前任务已从定时器队列中移除

mTimerTask = new MyTimerTask(); // 新建一个任务

每次放任务都要新建一个对象,否则出现一下错误:

ERROR/AndroidRuntime(11761): Java.lang.IllegalStateException: TimerTask is scheduled already

所以同一个定时器任务只能被放置一次

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc

喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

android的timertask,Android TimerTask 的简单应用及注意事项相关推荐

  1. Android 开发--利用android studio 制作简单文字打怪升级游戏(伪地牢类)1.开始

    本人目前是大三考研党,之前有学过一些杂七杂八的知识,但是没有办法利用这些知识制作一些真正有用的东西出来.后来自学了android开发,学会使用了android studio,终于决定利用android ...

  2. mp4 android自动播放,Android 使用VideoView播放MP4的简单实现

    使用VideoView播放MP4 播放示例 实现简单的播放功能,播放手机本地的MP4文件.不依赖任何第三方框架,不添加任何防腐剂. 添加一个系统自带的控制条. 申请权限 读取存储中的MP4文件 准备布 ...

  3. Android深入浅出系列之实例应用—简单的手指拖动图片,图片滑来滑去显示应用Gallery和BaseAdapter以及ImageView的使用...

    前言 我们现在在随便一个手机上用手指在屏幕上滑来滑都可以去拖动图片,其实在Android里这很简单,下面我就给大家具体讲解一下. 思路   我们首先需要Gallery这个对象,俗称画廊对象,大家都知道 ...

  4. android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()...

    最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示. main.xml [xhtml] view plaincopy <?xml version="1.0& ...

  5. android 切换 preferencefragment,Android PreferenceActivity与PreferenceFragment详解及简单实例_Android_脚本之家...

    Android  PreferenceActivity与PreferenceFragment 前言 转来转去又回到了Android,闲话少说,这里是参考Android原生的Settings应用来介绍一 ...

  6. Android投票列表设计,AndroidCustomView一个简单的投票排名对比图

    简介(投票 ,排名对比图) 一个简单的自定义 View 可高度定制 支持设置替换 支持 ,和反对的图标 支持自定义线宽和支持反对线的字体颜色 设置比分值 效果图 字段 属性 OppositeBitma ...

  7. 【转】Android APK反编译就这么简单 详解(附图)

     转自:http://blog.csdn.net/vipzjyno1/article/details/21039349/ [置顶] Android APK反编译就这么简单 详解(附图) 分类: and ...

  8. Android 自定义控件打造史上最简单的侧滑菜单

    侧滑菜单在很多应用中都会见到,最近QQ5.0侧滑还玩了点花样~~对于侧滑菜单,一般大家都会自定义ViewGroup,然后隐藏菜单栏,当手指滑动时,通过Scroller或者不断的改变leftMargin ...

  9. 打包android阴影不见,Android无pading超简单超实用阴影解决方案

    前言 这个迭代,UI在给了几张带阴影的图片,那种阴影范围很大,实际内容却只有一点的图片. 效果类似这样. 不知道这张图有没有表达清楚,就是那种图片之间阴影需要重叠才能使内容对其,阴影还有颜色的效果. ...

最新文章

  1. [Medical Image Process] 3.3 Grayscale Morphology Application
  2. 【内网安全】域横向网络传输应用层隧道技术
  3. [知识图谱实战篇] 二.Json+Seaborn可视化展示电影实体
  4. update inner join mysql_Mysql update inner join
  5. 阅读副本和Spring Data第2部分:配置基础项目
  6. 实现两个点集的欧式距离和cos距离和索引值寻找(含有两种解法,for循环和矩阵操作)
  7. Go Web 编程--超详细的模板库应用指南
  8. 57 - 算法 -贪心算法 - 区间不相交问题
  9. sql azure 语法_Azure SQL数据同步–在Azure SQL数据库之间复制数据和架构更改
  10. 29.奖金(拓扑排序)
  11. 华北电力大学依托大数据实施精准资助
  12. python格式化输出类型_Python格式化输出format方法需要限定数据类型吗?
  13. 我自己对于Netty的疑问
  14. 苹果系统下怎么设置iChat 登陆MSN?
  15. 中国草鱼养殖产业发展现状分析,生态养殖是未来发展趋势「图」
  16. ubuntu命令行一键安装谷歌浏览器
  17. Win7 + ubuntu14.04 双系统
  18. Win10系统CLSID大全
  19. 地图平面像素坐标 Plane Coordinates
  20. word2016去除回车符和换行符的方法

热门文章

  1. win7注册表无法修改计算机名称,win7注册表拒绝访问和修改的原因及解决方法
  2. 看雪论坛做测试题得30Kx(附答案)
  3. 前端好用的软件网站分享
  4. 免费3D播放器Butterfly 3D
  5. Android Studio自动排版格式化(android排版和xml排版)
  6. 调度算法的评价指标【操作系统学习笔记】
  7. python tornado实战_python-web之tornado实战篇
  8. 自动控制原理系统的“误差”
  9. Arduino超声波测距模块控制蜂鸣器
  10. 争夺“李子柒”,但别让“她”跑了