<?xml version="1.0" encoding="utf-8"?> <!-- 定义当前布局的基本LinearLayout --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- 定义页面文字标签 --> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="在3秒内点击两次返回键,可退出程序....." /> </LinearLayout>
package com.example.yanlei.yl2; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //定义是否退出程序的标记 private boolean isExit=false; //定义接受用户发送信息的handler private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); //标记用户不退出状态 isExit=false; } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //监听手机的物理按键点击事件 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { //判断用户是否点击的是返回键 if(keyCode == KeyEvent.KEYCODE_BACK){ //如果isExit标记为false,提示用户再次按键 if(!isExit){ isExit=true; Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); //如果用户没有在2秒内再次按返回键的话,就发送消息标记用户为不退出状态 mHandler.sendEmptyMessageDelayed(0, 3000); } //如果isExit标记为true,退出程序 else{ //退出程序 finish(); System.exit(0); } } return false; } }