UserHelper
package com.hk.icie;public class UserHelper {private static Boolean isExit = false;public static Boolean getIsExit() {return isExit;}public static void setIsExit(Boolean isExit) {UserHelper.isExit = isExit;}}

ExitTimerTask

package com.hk.utils;import java.util.TimerTask;import com.hk.icie.UserHelper;public class ExitTimerTask extends TimerTask {@Overridepublic void run() {UserHelper.setIsExit(false);}}
Tab1Activity
// 此部分为了实现按两下返回退出private Timer tExit = new Timer();private ExitTimerTask exitTimerTask = new ExitTimerTask();@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (!UserHelper.getIsExit()) {UserHelper.setIsExit(true);AlertUtils.ToastAlert(Tab1Activity.this, R.string.alert_exit);if (tExit != null) {if (exitTimerTask != null) {// 将原任务从队列中移除(必须的,否则报错)exitTimerTask.cancel();}// 新建一个任务exitTimerTask = new ExitTimerTask();tExit.schedule(exitTimerTask, 2*1000);}}else {UserHelper.setIsExit(false);finish();System.exit(0);}}return true;}
需要注意的是 每次放定时任务前,确保之前任务已从定时器队列中移除,每次放任务都要新建一个对象,否则出现一下错误:ERROR/AndroidRuntime(11761): java.lang.IllegalStateException: TimerTask is scheduled already,同一个定时器任务只能被放置一次。

更多相关文章

  1. android 实现定时器
  2. Android之AlarmManager定时器
  3. android定时器(Timer,TimerTask)
  4. Android中的定时器AlarmManager
  5. (三)Android数据结构学习之队列
  6. android 定时器与Canvas结合使用
  7. 【Android 内存优化】Bitmap 内存缓存 ( Bitmap 内存复用 | 弱引
  8. Android 消息机制之 MessageQueue 消息队列
  9. [Android] 利用Handler实现定时器功能

随机推荐

  1. 四.Android六种布局详细讲解
  2. android 百度地图3.0+常用操作
  3. 怎么去掉联系人、通话记录、拨号列表界面
  4. Android系统下如何在程序中对XML里面元素
  5. Android(安卓)读取资源文件实例详解
  6. APK_获取Android的APK包签名信息
  7. Android(安卓)屏幕设置
  8. Android开源图表库介绍
  9. android启动后根文件系统分析
  10. 利用Handler来更新android的UI