`
Cb123456
  • 浏览: 63520 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

android检测退出

阅读更多

    一些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,就执行退出操作.

 

  

 

 

  • 大小: 43 KB
  • 大小: 14.5 KB
  • 大小: 24.8 KB
1
0
分享到:
评论

相关推荐

    使用Application做android完全退出系统实例

    使用Application做android完全退出系统实例

    Android应用开发多个activity完全退出程序方法

    Android应用开发多个activity完全退出程序方法,亲测可用

    Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例).zip

    Android实例源码-应用启动应用退出&网络判断类安卓源代码(12例) 3G和wifi的切换监听 android 在线更新示例代码 android程序的自动更新 和 基于GPS定位的轨迹存储 app更新,实现service下载 ViewPager+Fragment侧滑...

    根据包名检测APP运行状态

    Android检测Activity或者Service是否运行的方法,我们用一个后台服务来监测这个app的运行情况。如果这个app被人为退出了,或者遇到bug崩溃了,就要重新启动,免得丢失数据。

    android apk版本检测升级及未捕获异常处理

    1.实现了应用级的未捕获异常处理,方便应用异常退出的错误定位,该功能可方便地进行重用; 2.实现了apk版本的检测及升级功能,简单修改之后就能用于其它apk的检测升级; 3.压缩包中的version.xml 是存放于服务器的...

    对于Android6.0及以上的权限获取

    假设首页需要权限,那么在显示首页前要检测权限是否获取,所以要在onResume()中检测权限是否全部获取。检测权限是否获取为允许权限或禁止权限,当用户点击允许时,显示首页,当...这里我用 的是android studio开发环境

    根据包名检测APP运行状态 开机自动检测

    开机自动根据包名检测APP运行状态 ,使app一直运行在前台,我们用一个后台服务来监测这个app的运行情况。如果这个app被人为退出了,或者遇到bug崩溃了,就要重新启动,免得丢失数据。

    android 实现后台服务源码下载

    android APP后台服务可以长期与服务器进行长期的交互,保证数据的实时性,这个小项目主要实现的是在app退出之后依然可以运行服务。使用系统的Intent.ACTION_TIME_TICK进行实现,这个系统的广播每隔一分钟就进行广播...

    Android AirPlus飞行历 飞行模式自动切换功能.rar

    Android AirPlus飞行模式自动切换工具,可以根据设定的时间自动进入和退出飞行模式,在无需关机的情况下让手机更加省电,减少睡眠时间手机的辐射作用。  Android飞行模式自动切换工具实现的功能如下:  1.快速进入...

    android标准身高测评

    public class HeightCalculatorActivity extends Activity { /** Called when the activity is first created.... //退出 private static final int EXIT=1; @Override public void onCreate(Bundle savedIns

    Android 滑动翻页源码

    GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件。 GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调...

    抢滩登陆游戏Android版附完整源代码.rar

    Android游戏开发实例之抢滩登陆源码,资源完整,是android新手学习安卓手机游戏开发的一个好范例素材,游戏操作方法:上下左右控制大炮的方向,空格键发射炮弹、返回键退出游戏。  本游戏源码中,开发了很多的游戏...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    本文研究并设计了基于Android+HTML5的在线认证检测系统,主要工作包括以下四个方面: (1)针对多窗口类浏览器模式问题,指出并分析了该问题存在的原因,利用Activity的运行机制,通过Fragment栈对主要模块的Webview...

    react-native-exit-app:完全针对iOS和Android上的React Native的退出,关闭,杀死,关机应用程序

    react-native-exit-app 退出/关闭/杀死/关闭您的本机应用程序。 不调用崩溃通知。 注意: 对于React Native <0> 0.47,请使用react-native-exit-app> = 1.xx建立快速简便: npm install react-native-exit-app --...

    Android 滑动翻页源码.zip

    GestureDetector类中可以用来检测各种手势事件。 该类有两个回调接口,分别用来通知具体的事件。 GestureDetector.OnDoubleTapListener:用来通知DoubleTap事件,类似于鼠标的双击事件,该接口有如下三个回调...

    Android蓝牙遥控器(字符串形式)应用例程——bluetoothdemo/BluetoothUnv

    (1)打开应用,显示主界面,检测蓝牙功能是否打开,否则询问打开; (2)打开蓝牙功能后,点击“连接设备:”下的按钮选择已匹配的蓝牙设备进行连接; (3)若蓝牙设备未匹配,可点击旁边的 […] 按钮打开系统...

    Android项目源码类似于我要当学霸的强制学习应用.zip

    本项目是一个类似于我要当学霸的强制性学习的小应用源码,不过本应用只会检测网络情况,并不会妨碍其他应用的使用,使用的时候先设置好开始时间和结束时间,然后退出,就可以了。软件会在后台运行, 在你设置的时间...

    Android实现页面翻转和自动翻转功能

    1. 效果图,本功能用了ViewFlipper和GestureDetector (手势检测器)两个关键技术点: 2. 先写好布局文件,这里用到了...android:outAnimation:设置切换View的退出动画 当然同样的在代码中也可以设置: isFlipping:

    声动金来股价预警1.00

    声动金来股价预警为您盯盘,让您不用看盘却对股票了如指掌,运筹帷幄。 只需您设置好预警条件,无需盯盘。当股价到达您设置的条件时...非交易时间不检测,所以您无需退出软件. 免费软件 使用环境: Android手机或平板

Global site tag (gtag.js) - Google Analytics