2016年6月25日 星期六

再按一次返回鍵結束程式


public class MainActivity extends Activity {

//判斷離開的flag,設定成全域變數
private boolean is_exit = false;

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

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
boolean returnValue = false;
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 && is_exit == false) {
Toast.makeText(getBaseContext(), getText(R.string.str_notice_ExitonDoubleKeyDown), Toast.LENGTH_SHORT).show();
is_exit = true;
// 一開始 先設定 返回的 flag = true ,若使用者兩秒內沒有動作,則將該 flag 恢復為 false
new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(2000);
is_exit = false;
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
returnValue = true;
} else {
returnValue = super.onKeyDown(keyCode, event);
}
return returnValue;
}
}

註:程式碼來源由網路查得


下載範例

沒有留言: