自定义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 }
原文地址:https://www.cnblogs.com/qjm253/p/5423394.html