思路:重写Activity的onKeyDown方法,判断按键是不是返回键,如果是,则再判断按下的时间和上次按下的时间之间的差值(毫秒数)是不是大于2000,如果不大于,则用finish()方法结束程序。Demo如下:
1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.view.KeyEvent; 4 import android.widget.Toast; 5 6 public class TestActivity extends Activity { 7 private long mExitTime; //存在时间,初值为0,用于和当前时间(毫秒数)做差值 8 9 @Override 10 public void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.main); 13 14 } 15 16 @Override 17 public boolean onKeyDown(int keyCode, KeyEvent event) { 18 if (keyCode == KeyEvent.KEYCODE_BACK) { 19 if ((System.currentTimeMillis() - mExitTime) > 2000) { //mExitTime的初始值为0,currentTimeMillis()肯定大于2000(毫秒),所以第一次按返回键的时候一定会进入此判断 20 21 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); 22 mExitTime = System.currentTimeMillis(); 23 24 } else { 25 finish(); 26 } 27 return true; 28 } 29 return super.onKeyDown(keyCode, event); 30 } 31 }