一些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 {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}// 是否退出程序private static Boolean isExit = false;// 定时触发器private static Timer tExit = null;// 鼠标按键释放@Overridepublic boolean onKeyUp(int keyCode, KeyEvent event) {// TODO Auto-generated method stubif (keyCode == KeyEvent.KEYCODE_BACK) {if (isExit == false) {isExit = true;if (tExit != null) {tExit.cancel();}// 重新实例一个定时器tExit = new Timer();TimerTask task = new TimerTask() {@Overridepublic void run() {// TODO Auto-generated method stubisExit = 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);}@Overridepublic 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类说明:

 
android检测退出_第1张图片
 

 cancel()方法:

 
android检测退出_第2张图片
 

   schedule:

 
android检测退出_第3张图片
 

  执行流程:

  当你按下back按键后,Toast一下,然后会在当前时间+delay后启动task任务,当启动task任务后,isExit依然是false,是不能退出的,不启动task任务,isExit是true,

  在按下一back按键后,由于isExit是true,就执行退出操作.

 

  

 

 

更多相关文章

  1. Android 如何在代码中将PX转换成DIP
  2. Android——常用代码段积累(一)
  3. android 使用imageloader 获取图片时,如果需要带cookie
  4. android 图片叠加效果——两种方法
  5. Android TabHost 文字及图片的设置
  6. android调用系统邮件发送图片文本
  7. android之【代码实现ImageView图片切换】
  8. Android 图像系列: 将本地图片加载到Drawable

随机推荐

  1. android 图片处理
  2. Android之应用首次使用的欢迎界面实例
  3. android studio 读取短信
  4. android ping
  5. Android中CheckBox复选框操作
  6. android 6.0权限全面详细分析和解决方案
  7. android 图片水平显示,类Gallery效果
  8. Android调用MediaScanner进行扫描
  9. linux tar.gz zip 解压缩 压缩命令
  10. 改变 Android(安卓)EditText 的边框