自定义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 }