$Android连续按返回键两次实现退出程序

  思路:重写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 }

 

posted @ 2016-04-10 14:16  AzureSky  阅读(566)  评论(0编辑  收藏  举报