直接上代码:

InactivityTimer.class类:

/*** Finishes an activity after a period of inactivity.*/
public final class InactivityTimer {private static final int INACTIVITY_DELAY_SECONDS = 5 * 60; //5分钟后自动关闭目标activity/*** 创建只有一条线程的线程池,他可以在指定延迟后执行线程任务,其中一个构造方法可以传入ThreadFractory* JDK 1.5之后有了ScheduledExecutorService,不建议你再使用java.util.Timer,* 因为它无论功能性能都不如ScheduledExecutorService。*/private final ScheduledExecutorService inactivityTimer = Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory());private final Activity activity;//表示ScheduledExecutorService中提交了任务的返回结果private ScheduledFuture<?> inactivityFuture = null;public InactivityTimer(Activity activity) {this.activity = activity;onActivity();}public void onActivity() {cancel();//5分钟后执行关闭操作inactivityFuture = inactivityTimer.schedule(new FinishListener(activity), INACTIVITY_DELAY_SECONDS, TimeUnit.SECONDS);}private void cancel() {if (inactivityFuture != null) {inactivityFuture.cancel(true);inactivityFuture = null;}}public void shutdown() {cancel();inactivityTimer.shutdown();}/*** 通过自定义ThreadFactory创建一个守护线程*/private static final class DaemonThreadFactory implements ThreadFactory {@Overridepublic Thread newThread(Runnable runnable) {Thread thread = new Thread(runnable);//设置为守护线程,用于守护当前的UI线程thread.setDaemon(true);return thread;}}}

FilishListener.class类:

/*** Simple listener used to exit the app in a few cases.*/
public final class FinishListener implements DialogInterface.OnClickListener,DialogInterface.OnCancelListener, Runnable {private final Activity activityToFinish;public FinishListener(Activity activityToFinish) {this.activityToFinish = activityToFinish;}@Overridepublic void onCancel(DialogInterface dialogInterface) {run();}@Overridepublic void onClick(DialogInterface dialogInterface, int i) {run();}@Overridepublic void run() {activityToFinish.finish();}}

实现对Activity的定时关闭功能相关推荐

  1. Android前端通过Http协议与J2EE后端数据交互。工具eclipse、MySQL、Tomcat。通过JoSn获取数据。Android端实现对MySQL增删改查功能。

    Android:目录 HttpThread.java package com.example.saads; import java.io.BufferedReader; import java.io. ...

  2. 6行代码实现对TF卡的读写功能

    文章目录 前言 一.实现功能 二.材料清单 三.完整代码 四.代码运行结果 前言 shineblink core 开发板(简称Core)的库函数支持TF卡读写功能,所以只需要调用两三个API,即可实现 ...

  3. 合并表格,并实现对datatable的group by 功能

    没有想到好的方法,这是最笨的方法,对datatable的逐行进行汇总. DataTable ddt = new DataTable();              for (int i = 0; i ...

  4. 用百度富文本编辑器UMeditor实现对html文本的编辑功能,vue中使用UMeditor编辑器

    百度 UMeditor 编辑器资源免费下载地址: https://download.csdn.net/download/WanweI897/67403979 该编辑器没有官方文档,不过百度另一个编辑器 ...

  5. html 保存草稿,利用localStorage实现对ueditor编辑内容定时保存为草稿,ueditor草稿箱...

    利用localStorage实现对ueditor编辑内容定时保存为草稿,ueditor草稿箱 直接看代码吧 1.引入ueditor和ueditor的使用我就不细说了 详情请戳http://blog.c ...

  6. 使用underscore模块的template功能实现对HTML的数据注入+template实现数据注入(后面更新)

    使用underscore模块的template功能实现对HTML的数据注入 安装underscore 代码是:npm i underscore 查看是否安装成功 server.js文件 var htt ...

  7. 通过威纶通触摸屏的穿透功能实现对FX3U系列PLC程序的上传下载和监控的具体方法

    通过威纶通触摸屏的穿透功能实现对FX3U系列PLC程序的上传下载和监控的具体方法 由于FX3U系列PLC本体只有一个通信接口,如果和威纶通触摸屏连接后,此时就无法用电脑监控调试程序了,非常的不方便. ...

  8. C#之windows桌面软件第五课:串口助手实现定时关闭设备、鼠标移动使按钮颜色变化功能

    本节在串口助手上实现: 1.定时关闭设备 2.移动鼠标使按钮颜色变换 Form1.cs代码如下: using System; using System.Collections.Generic; usi ...

  9. 基于STM32F407的FSMC功能实现对TFT的控制

    对FSMC的理解 1.FSMC即灵活的静态存储控制器,能够连接同步.异步存储器和 16 位 PC 存储卡.专业讲解可以看STM32F4xx中文参考手册. 2.个人理解: 其实它就是为了扩展存储做了一种 ...

最新文章

  1. react.js做小程序_如何使用React.js构建现代的聊天应用程序
  2. FillMode详解
  3. SQL server 2000建立远程连接(局域网)
  4. win10,pip更新后,Spyder打不开
  5. ccf-csp #201703-2 学生排队
  6. SVN和Git 介绍,区别,优缺点以及适用范围
  7. 安装部署OpenStack(添加资源)
  8. Two Paths CodeForces - 14D(暴力+树的直径)
  9. 应用层组播、IP组播
  10. 华为荣耀七能升级鸿蒙系统吗,华为鸿蒙系统来了,你知道哪些华为手机荣耀手机可以升级吗?...
  11. pyhton中的wsgi是什么?
  12. QueryWrapper 一些常用操作 or like in 大于 小于 操作
  13. Linux自动化运维第十八课
  14. android软键盘自动弹出,android安卓editText自动弹出软键盘(输入键盘)
  15. 【OpenCV学习笔记】【错误处理】计算机缺失MSVCP120D.dll
  16. nb信号和4g信号_【行业】万物互联的世界NB-IoT VS 4G,到底哪个更能打?
  17. CH552 USB HID键盘
  18. 实例详解ISA防火墙策略元素
  19. SAP 安全证书的导入
  20. 【转载】自然语言处理(NLP)的历史、发展、成果和难题,以及在教育领域的应用情况

热门文章

  1. 苹果iPhone App反垄断案败诉,看来一场席卷科技公司的一风暴要来了!
  2. java object转对象,object如何强转为对象
  3. Synchronized与Lock区别
  4. 测试用例-百度搜索框
  5. 企业Mashups:揭开SOA新一面
  6. 阿里云服务器更换第三方SSL证书
  7. python wmi_使用python的wmi进行远程连接的时候报错
  8. python接入excel_使用Python实现Excel数据表导入数据库
  9. ubuntu 设置分辨率
  10. “平台化思维”如火如荼的今天,该如何借鉴?