안드로이드 개발 질문/답변
(글 수 45,052)
단말의 취소 버튼을 눌렀을때 "종료하시겠습니까" 라는 다이얼을 보여주고 앱을 종료시키려고 합니다...
아래와 같이 코딩했구요...
실행해서 취소키를 누르면 "종료하시겠습니까??????????????"" 라는 다이얼이 뜨기는 하는데...
곧바로 죽으면서 이전액티비티로 돌아가 버립니다...
이상하다 싶어 다른앱에다가 아래와 똑같이 코딩한다음 실행하면 거기서는 잘 되거든요....
별다른 문제도 없어보이는데...
이건 왜 이런걸까요???
도무지 알 방법이 없네요... 좀 도와주세요.. ㅠㅠ..
//취소버튼을 눌렀을때 어플이 종료되게 하기 위해서...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.v(TAG,"onKeyDown : " + keyCode);
// TODO Auto-generated method stub
if(keyCode == 4)
{
new AlertDialog.Builder(this)
.setTitle("프로그램종료")
.setMessage("종료하시겠습니까??????????????")
.setIcon(R.drawable.icon)
.setCancelable(false)
.setPositiveButton("종료", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}
})
.setNegativeButton("취소", null)
.show();
}
return super.onKeyDown(keyCode, event);
}
2010.10.25 10:36:39
답변감사드립니다.
아래와 같이 수정하였는데요...
boolean isRtn = super.onKeyDown(keyCode, event);
해주고 isRtn을 찍어보면 true를 반환하네요...
Keycode가 4일때 isRtn을 false로 해줘도 동일한 증상입니다.. ㅠㅠ...
코드는 아래와 같이 수정해보았습니다...
//취소버튼을 눌렀을때 어플이 종료되게 하기 위해서...
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
boolean isRtn = super.onKeyDown(keyCode, event); //isRtn:true를 반환함...
Log.v(TAG,"onKeyDown : " + keyCode + ", isRtn : " + isRtn);
// TODO Auto-generated method stub
if(keyCode == 4)
{
isRtn = false; //false로 고정...
new AlertDialog.Builder(this)
.setTitle("프로그램종료")
.setMessage("종료하시겠습니까??????????????")
.setIcon(R.drawable.icon)
.setCancelable(false)
.setPositiveButton("종료", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
finish();
}
})
.setNegativeButton("취소", null)
.show();
}
return isRtn;
}




할때마다 이게 햇갈려서 정확히 뭔값인지 생각이 안나는데요... 둘중에 하나 고정하면 됩니다.