一些Android应用退出的时候,要按两次back按键,一直很好奇,总算是发现怎么实现的了。
实现代码:
package com.example.com.cb.test; import java.util.Timer; import java.util.TimerTask; import android.os.Bundle; import android.app.Activity; import android.view.KeyEvent; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } // 是否退出程序 private static Boolean isExit = false; // 定时触发器 private static Timer tExit = null; // 鼠标按键释放 @Override public boolean onKeyUp(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == KeyEvent.KEYCODE_BACK) { if (isExit == false) { isExit = true; if (tExit != null) { tExit.cancel(); } // 重新实例一个定时器 tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { // TODO Auto-generated method stub isExit = false; } }; Toast.makeText(this, "在按一次退出程序", Toast.LENGTH_SHORT).show(); // 延时两秒触发task任务 tExit.schedule(task, 2000); } else { finish(); System.exit(0); } return true; } return super.onKeyUp(keyCode, event); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
实现具体:
看代码很明显就是对Timer这个类的使用.
Timer类说明:
cancel()方法:
schedule:
执行流程:
当你按下back按键后,Toast一下,然后会在当前时间+delay后启动task任务,当启动task任务后,isExit依然是false,是不能退出的,不启动task任务,isExit是true,
在按下一back按键后,由于isExit是true,就执行退出操作.
相关推荐
使用Application做android完全退出系统实例
Android应用开发多个activity完全退出程序方法,亲测可用
Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例) 3G和wifi的切换监听 android 在线更新示例代码 android程序的自动更新 和 基于GPS定位的轨迹存储 app更新,实现service下载 ViewPager+Fragment侧滑...
Android检测Activity或者Service是否运行的方法,我们用一个后台服务来监测这个app的运行情况。如果这个app被人为退出了,或者遇到bug崩溃了,就要重新启动,免得丢失数据。
1.实现了应用级的未捕获异常处理,方便应用异常退出的错误定位,该功能可方便地进行重用; 2.实现了apk版本的检测及升级功能,简单修改之后就能用于其它apk的检测升级; 3.压缩包中的version.xml 是存放于服务器的...
假设首页需要权限,那么在显示首页前要检测权限是否获取,所以要在onResume()中检测权限是否全部获取。检测权限是否获取为允许权限或禁止权限,当用户点击允许时,显示首页,当...这里我用 的是android studio开发环境
开机自动根据包名检测APP运行状态 ,使app一直运行在前台,我们用一个后台服务来监测这个app的运行情况。如果这个app被人为退出了,或者遇到bug崩溃了,就要重新启动,免得丢失数据。
android APP后台服务可以长期与服务器进行长期的交互,保证数据的实时性,这个小项目主要实现的是在app退出之后依然可以运行服务。使用系统的Intent.ACTION_TIME_TICK进行实现,这个系统的广播每隔一分钟就进行广播...
Android AirPlus飞行模式自动切换工具,可以根据设定的时间自动进入和退出飞行模式,在无需关机的情况下让手机更加省电,减少睡眠时间手机的辐射作用。 Android飞行模式自动切换工具实现的功能如下: 1.快速进入...
public class HeightCalculatorActivity extends Activity { /** Called when the activity is first created.... //退出 private static final int EXIT=1; @Override public void onCreate(Bundle savedIns
GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件。 GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调...
Android游戏开发实例之抢滩登陆源码,资源完整,是android新手学习安卓手机游戏开发的一个好范例素材,游戏操作方法:上下左右控制大炮的方向,空格键发射炮弹、返回键退出游戏。 本游戏源码中,开发了很多的游戏...
本文研究并设计了基于Android+HTML5的在线认证检测系统,主要工作包括以下四个方面: (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview...
react-native-exit-app 退出/关闭/杀死/关闭您的本机应用程序。 不调用崩溃通知。 注意: 对于React Native <0> 0.47,请使用react-native-exit-app> = 1.xx建立快速简便: npm install react-native-exit-app --...
GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件。 GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调...
(1)打开应用,显示主界面,检测蓝牙功能是否打开,否则询问打开; (2)打开蓝牙功能后,点击“连接设备:”下的按钮选择已匹配的蓝牙设备进行连接; (3)若蓝牙设备未匹配,可点击旁边的 […] 按钮打开系统...
本项目是一个类似于我要当学霸的强制性学习的小应用源码,不过本应用只会检测网络情况,并不会妨碍其他应用的使用,使用的时候先设置好开始时间和结束时间,然后退出,就可以了。软件会在后台运行, 在你设置的时间...
1. 效果图,本功能用了ViewFlipper和GestureDetector (手势检测器)两个关键技术点: 2. 先写好布局文件,这里用到了...android:outAnimation:设置切换View的退出动画 当然同样的在代码中也可以设置: isFlipping:
声动金来股价预警为您盯盘,让您不用看盘却对股票了如指掌,运筹帷幄。 只需您设置好预警条件,无需盯盘。当股价到达您设置的条件时...非交易时间不检测,所以您无需退出软件. 免费软件 使用环境: Android手机或平板