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

来源:互联网 发布:matlab生成随机数矩阵 编辑:程序博客网 时间:2024/06/02 06:54
 

 

实现机制:当用户点击物理返回键时,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     @Override18     protected void onCreate(Bundle savedInstanceState) {19         super.onCreate(savedInstanceState);20         setContentView(R.layout.activity_main);21     }22 23     @Override24     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                 @Override37                 public void run() {38                     EVENT_BACK = 0;39                 }40             },2000);41         }42     }43 }

 

0 0