어떻게 구현해야 할까~?
// 핸들러, 플래그 선언.
private Handler mHandler;
private boolean mFlag = false;
// BACK Handler -> onCreate 안에 넣어주세요!
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what == 0) {
mFlag = false;
}
}
};
/*
백키 이벤트를 가로채서 플래그값 확인 후 처리.
플래그 값이 true인 상태에서 2초 이내에 백키를 누르면 액티비티 종료.
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(!mFlag) {
Toast.makeText(list.this, "'뒤로'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
mFlag = true;
mHandler.sendEmptyMessageDelayed(0, 2000);
return false;
} else {
finish();
}
}
return super.onKeyDown(keyCode, event);
}
private Handler mHandler;
private boolean mFlag = false;
// BACK Handler -> onCreate 안에 넣어주세요!
mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if(msg.what == 0) {
mFlag = false;
}
}
};
/*
백키 이벤트를 가로채서 플래그값 확인 후 처리.
플래그 값이 true인 상태에서 2초 이내에 백키를 누르면 액티비티 종료.
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(!mFlag) {
Toast.makeText(list.this, "'뒤로'버튼을 한번 더 누르시면 종료됩니다.", Toast.LENGTH_SHORT).show();
mFlag = true;
mHandler.sendEmptyMessageDelayed(0, 2000);
return false;
} else {
finish();
}
}
return super.onKeyDown(keyCode, event);
}
설정 시간(현재 2초)은 sendEmptyMessageDelayed 숫자값 조절.
백키 이벤트는 onCreate 바깥에 - v -*
개인적으로 어플 종료할 때 이 방법을 선호한다.
한 번 눌러 종료되는 건 잘못 눌리는 일도 많아서 살짝 그렇고, 메뉴에 넣자니 번거롭고
얼럿창 역시 쵸큼 번거롭고. 무튼─ 즐거운 프로그래밍!
댓글 없음:
댓글 쓰기