Monday, January 2, 2012

Exit/Back Key for Android Development

在使用 Android 時,不小心按到 Back 鍵而離開應用程式,
應該要有個提示讓使用者知道是否要離開

只要 Override Activity 的 onKeyDown 事件,加上提示的程式即可

常用的方法有二個

1. 使用 Toast 提示,在一定的時間內按二次 Back 鍵

private long exitTime = 0;

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(keyCode == KeyEvent.KEYCODE_BACK
        && event.getAction() == KeyEvent.ACTION_DOWN){
        if((System.currentTimeMillis()-exitTime) > 2000){
            Toast.makeText(getContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
            exitTime = System.currentTimeMillis();
        } else {
            finish();
            System.exit(0);
        }
        return true;
    }
return super.onKeyDown(keyCode, event);
}


2. 使用 AlertDialog ,讓使用者自行決定

new AlertDialog.Builder( getContext)
    .setIcon(R.drawable.icon_info).setTitle("  ")
    .setMessage("確定要離開應用程式嗎?")
    .setNegativeButton("取消", new OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    }).setNeutralButton("確定", new OnClickListener() {
         @Override
         public void onClick(DialogInterface dialog, int which) {
            finish();
            System.exit(0);
        }
    }
).create().show();

No comments:

Post a Comment