iT氪 IT人的社区

iT氪 IT人的社区

Android中定时器Timer和TimerTask的启动,停止,暂停,继续等操作实例

来源:网络
发布:风雨在途
时间:2017-02-19
浏览:1882 次
#评论#

1、Timer和TimerTask在调用cancel()取消后不能再执行 schedule语句,否则提示出错

2、只能在UI主线程中更新控件/组件。在其他线程中,更新控件/组件,会提示出错,提示如下:

(注:这种情况下,可以通过Hander发送消息的方式来更新控件/组件,详情参考例子。)

 

如下的代码提供了一种停止定时器的方案,但是启动是否会多个定时任务,暂时需要调查:

 

//延迟时间
        private static final long SENDING_DURATION = 60 * 1000;
        private Timer mSendTimer = null;
        private TimerTask mSendTimerTask = null;
       //开始计算时间
        private Long mStartTime = null;
        /**
         * 监听每条消息的发送时间处理消息超时
         * 开始监听时间
         */
        private void SendTimerTask() {
                if (mSendTimer == null) {
                        mSendTimer = new Timer();
                }
                //在这里算出开启timer的是时候
                mStartTime = System.currentTimeMillis();
                mSendTimerTask = new TimerTask() {
                        @override
                        public void run() {
                                //timer开始以后每经过1分钟进一次run 方法 
                                //可以在这里面判断是否cancle掉这个timer
                                //判断如果延迟超过10秒则调用cleanSendTimerTask() 方法关闭掉这个timer
                          if (System.currentTimeMillis() - mStartTime
收藏 (0) +1 (3) +1 (0) +1

相关阅读

Android Studio 2.3正式版发布,官方全解析

Android Studio 2.3正式版发布,官方全解析

    Android Studio 2.3 现已提供下载。此版本的重点是整个 IDE 的质量改进。我们感谢大家迄今为止提供的所有反馈。我们致力于持续投入,让 Android Studio 成为全球数以百万计 Android 应用开发者高效而又无缝式的开发平台。   Android Studio 2.3 中最令人激动的是质量上的改进,但此版本也加入了少量新功能,它们集成到了开发流程的每一个阶段: 设计应用时,请充分利用面向应用图像的更新版 WebP 支持,也请了解一下更新版ConstraintLayout 内容库支持以及布局编辑器中的小部件选项板。 ...

百度的Android招聘面试题

百度的Android招聘面试题

一般简单题 1. Android dvm的进程和Linux的进程,应用程序的进程是否为同一个概念? DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。 2. SIM卡的 EF 文件有何作用? sim卡的文件系统有自己规范,主要是为了和手机通讯,sim本身可以有自己的操作系统,EF就是作存储并和手机通讯用的。 3. 嵌入式操作系统内存管理有哪几种,各有何特性? 页式,段式,段页,用到了MMU,虚拟空间等技术。 ...

android完全结束Activity并退出程序

android完全结束Activity并退出程序

关于完全退出Android程序,网上这方面的帖子很多,方法也很多。记得当时自己写的第一个比较完整的项目的时候就遇上了这个问题,由于对Activity的生命周期了解不够,又使用了TabActivity使得层次关系比较复杂,在程序中添加的“退出”菜单项经常无法完全退出,之后网上各种搜索,各种方法也试过了,什么System.exit(0)啊,结束进程之类的啊,都依然无效果。 后面才发现的这个方法。思路也很简单,回想自己当初为了解决这个问题时的苦苦寻觅,遂决定将其共享,供遇到此问题人士作为参考。 啰嗦够了,上思路:添加一个全局变量作为程序退出的标记(boolean类...

Android 反射-换一种方式编程

Android 反射-换一种方式编程

首先创建工具类 ResourceUtils package com.app.fanse; import android.content.Context; import android.graphics.drawable.Drawable; public class ResourceUtils { public static int getIdByName(Context context, String className, String name) { return context.getResources().getIde...

Android编程操作联系人的步骤(查询,获取,添加等)

Android编程操作联系人的步骤(查询,获取,添加等)

Android编程操作联系人的方法(查询,获取,添加等) Android系统中的联系人也是通过ContentProvider来对外提供数据的,我们这里实现获取所有联系人、通过电话号码获取联系人、添加联系人、使用事务添加联系人。 获取所有联系人的权限: <uses-permission android:name="android.permission.WRITE_CONTACTS"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> 获取所有联系人 1...