android 再按一次后退键退出应用程序

方法一:
private
static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = new Timer(); TimerTask task = new TimerTask() { @Override public void run() { isExit = false; hasTask = true; } }; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { System.out.println("TabHost_Index.java onKeyDown"); if (keyCode == KeyEvent.KEYCODE_BACK) { if(isExit == false ) { isExit = true; Toast.makeText(this, "再按一次后退键退出应用程序", Toast.LENGTH_SHORT).show(); if(!hasTask) { tExit.schedule(task, 2000); } } else { finish(); System.exit(0); } } return false; }

方法2:
public class BackActivity extends Activity {

        private static final String TAG = "BackActivity";
        private long mLastBackTime = 0;
        private long TIME_DIFF = 2 * 1000;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_BACK) {
                        long now = new Date().getTime();
                        if (now - mLastBackTime < TIME_DIFF) {
                                Log.d(TAG, "back, finish");
                                return super.onKeyDown(keyCode, event);
                        } else {
                                Log.d(TAG, "after 2s, toast");
                                mLastBackTime = now;
                                Toast.makeText(this, "再点一次将推出", 2000).show();
                        }
                        return true;
                }
                return super.onKeyDown(keyCode, event);
        }
}

 

建议用方法2

原文连接:http://gundumw100.iteye.com/blog/1561861

posted @ 2012-07-25 22:52  灰太狼_lilongmin  阅读(163)  评论(0编辑  收藏  举报