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(安卓)AsyncTask Download
  2. android 实现定时器
  3. Activity的四种启动方式
  4. Android(安卓)Looper中的MessageQueue消息处理机制
  5. Java(Android)线程池
  6. Android之AlarmManager定时器
  7. Android中的自动朗读(TTS)
  8. Android(安卓)中文 API (101) —— AsyncTask
  9. Android官方技术文档翻译——Gradle 插件用户指南(7)

随机推荐

  1. Android(安卓)实现滑动方法总结
  2. Android(安卓)UI 之WaterFall瀑布流效果
  3. Android开发之手机震动器
  4. listView下拉刷新(仿sina微博Android客户
  5. 解决API
  6. 对话框的练习(android)
  7. android中的sqlit3数据库进行手机应用软
  8. RelativeLayout布局,以及部分常用属性介绍
  9. android 隐藏虚拟按键
  10. [转]Android中Matrix的pre post set方法