自定义Back返回键(实现按两次返回键退出程序)

实现机制:当用户点击物理返回键时,Activity会调用onBackPressed(),只需在Activity中复写该方法即可

以下是代码实现:

 1 package com.example.qjm3662.service_learn;
 2
 3 import android.content.ComponentName;
 4 import android.content.Intent;
 5 import android.content.ServiceConnection;
 6 import android.os.IBinder;
 7 import android.support.v7.app.AppCompatActivity;
 8 import android.os.Bundle;
 9 import android.view.Window;
10 import android.widget.TimePicker;
11 import android.widget.Toast;
12
13 public class MainActivity extends AppCompatActivity {
14
15     //静态标记,用来标识用户是否在规定时间内连续点击返回键两次
16     static int EVENT_BACK = 0;
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         setContentView(R.layout.activity_main);
21     }
22
23     @Override
24     public void onBackPressed() {
25         //如果用户在两秒内连续点击返回键,则执行默认操作(一般是把当前Activity中Activity栈中弹出)
26         if(EVENT_BACK == 1){
27             super.onBackPressed();
28         }else{
29             //用户第一次点击,将EVENT_BACK设为1表示用户已经点击了一次
30             EVENT_BACK = 1;
31             //弹出吐司框,提醒用户在点击一次即可退出程序
32             Toast.makeText(MainActivity.this, "再按一次退出", Toast.LENGTH_SHORT).show();
33             TimePicker timePicker = new TimePicker(this);
34             //若用户在两秒内没有再次点击返回键,就将EVENT_BACK再置为0,用户需要重新点击两次
35             timePicker.postDelayed(new Runnable() {
36                 @Override
37                 public void run() {
38                     EVENT_BACK = 0;
39                 }
40             },2000);
41         }
42     }
43 }
时间: 2024-12-30 03:46:58

自定义Back返回键(实现按两次返回键退出程序)的相关文章

Android_按两次返回键退出程序和长按返回键退出程序

以上两个功能主要是参考了一下博客的: http://blog.csdn.net/chenshijun0101/article/details/7682210 http://blog.csdn.net/winlinking/article/details/6596455 方法一: 按两次返回键退出程序: Activity: public class Back2FinishAppActivity extends Activity { Exit exit = new Exit(); /** Calle

安卓---连续点击两次返回键退出程序---二级界面的退出程序

法一:实现方式,通过记录按键时间计算时间差实现: import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends Activity { private long exitTime = 0; @Override protected void onCreate(Bundl

android实现点击两次返回键实现退出功能

在使用android平台的app是我们经常会发现点击两次返回键会提示是否退出的功能,下面讲讲此功能是如何实现的(此方法比较简单) 第一种方法是对系统返回键进行监听,定义一个变量记录按键时间,通过计算时间差来实现该功能,代码如下: //退出时的时间private long mExitTime;//对返回键进行监听@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCO

重写dispatchKeyEvent方法 按返回键back 执行两次的解决办法

重写dispatchKeyEvent方法 按返回键back 执行两次的解决方法 @Override   public boolean dispatchKeyEvent(KeyEvent event) {           if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACTION_UP) {//不响应按键抬起时的动作                //TODO 代码    

android 按两次返回键退出

我们可以在很多应用中都能看到按两次返回键退出 , 其实这个功能实现很容易, 下面就是实现的代码 , 把它放到你的程序中你的程序就能按两次返回键退出啦  , 这个功能是为了避免误点而把程序退出了 ,给你的程序也加上这个简单实用的功能把 : package com.xuchao.test; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget

Android按两次返回键退出应用

最近工作比较忙,所以只好在周末写点博客了,呵呵.在3年的Android工作中积累了不少经验,我会慢慢把我在工作遇到的经验写给大家!好了,现在就先贴一段代码,是关于按两次返回键退出应用的实战代码! private static long exitTime = 0; public static void onBackPressedAgain(Activity paramActivity) { Log.i(TAG, "onBackPressedAgain " + paramActivity.

Android 按两次返回键完全退出程序

现在几乎所有的应用程序都有按两个返回键退出应用程序的功能,最开始的时候以为只要使用一句finish(),就可以实现此功能,后来发现这个只是销毁掉当前页面,并没有退出程序,进程还是在后台运行.后来,使用System.exit(0),此方法的功能是结束进程,结果还是不行.后来经过查找,终于找到了一个比较好的方法可以去实现这个功能.此方法的原理为把所有Activity加入到一个链表集合里,当按两次返回键时,先是销毁掉所有Activity,再掉用System.exit(0);具体代码如下 1.先写一个M

WP8.1 双击两次返回键退出程序

在实现Windows Phone上实现点按两次返回键退出程序, 一种方法是使用Coding4Fun提供的ToastPrompt, 使用方法如下: 1. 安装引用, 打开Package Manager Console. 输入下列命令以安装 Coding4Fun.Toolkit.Controls Install-Package Coding4Fun.Toolkit.Controls 输入下列命令以安装 GalaSoft.MvvmLight.Messaging Install-Package Mvvm

Android实现点击两次返回键退出

在做android应用是我们经常要判断用户对返回键的操作,一般为了防止误操作都是在用户连续按下两次返回键的时候提示用户是否退出应用程序. 原理: 监听back键的按下,需要重写onKeyDown()方法,判断两次按下的时差,如果小于2秒,就退出,反之亦然. 第一种: package com.example.appexitdemo; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import a

dispatchKeyEvent方法 按返回键back 执行两次

重写dispatchKeyEvent方法 按返回键back 执行两次的解决方法 转自: @Override public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACTION_UP) {//不响应按键抬起时的动作 //TODO 代码 System.out.println("Ba