思路:java
用定時器(timer)計時,當用戶第一次點返回鍵時提示「再按一次退出」,兩秒以內再點一次退出。不點就判斷爲誤觸。android
package com.example.themtest; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.view.Menu; import android.widget.Toast; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } //重寫onKeyDown方法,判斷是否點擊退出鍵 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub switch (keyCode) { case KeyEvent.KEYCODE_BACK: handleCilick();//點擊就跳轉到此方法 return true; default: break; } return super.onKeyDown(keyCode, event); } /* *此變量用來計算點的次數,初始值爲false,第一點設置爲true,若是第二次點就爲false,退出 *若是沒點就不作操做 */ private boolean isDoubleClick; Timer timer = new Timer(); private void handleCilick() { // TODO Auto-generated method stub System.out.println(isDoubleClick); if (!isDoubleClick) { isDoubleClick = true; //第二次點擊,用到了TimerTask Toast.makeText(this, "再按一次推出", Toast.LENGTH_SHORT).show(); timer.schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub isDoubleClick = false; } }, 2000); } else { finish(); System.exit(0); } } }