Hyun Chul's Utopia

뒤로가기 버튼으로 어플 종료하기 본문

프로그래밍/Android

뒤로가기 버튼으로 어플 종료하기

디프시다루핀 2011. 8. 11. 20:21

  안드로이드에서 뒤로가기 버튼을 눌렀을때 KeyEvent를 발생하여 어플리케이션을 종료시킬 수 있는 방법입니다. 우선적으로 프로세스 종료하는 방법중 하나인 KillProcess 가 있습니다. 레퍼런스상의 문서 내용으로 보자면 아래와 같이 명시 되어 있네요..

public static final void killProcess(int pid)

  Kill the process with the given PID. Note that, though this API allows us to request to kill any process based on its PID, the kernel will still impose standard restrictions on which PIDs you are actually able to kill. Typically this means only the process running the caller's packages/application and any additional processes created by that app; packages sharing a common UID will also be able to kill each other's processes.

  그럼 본론으로 들어가서 뒤로가기 버튼에 따른 종료 이벤트 설정하는 방법은 아래와 같이 사용할 수 있습니다. 편의상 종료라는 기능이기 때문에 AlerDialog를 이용하여 종료 여부를 물어볼수 있도록 구성하였습니다.


// 하드웨어 뒤로가기버튼 이벤트 설정.
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    	
    	switch (keyCode) {
    	//하드웨어 뒤로가기 버튼에 따른 이벤트 설정
		case KeyEvent.KEYCODE_BACK:
			
			Toast.makeText(this, "뒤로가기버튼 눌림", Toast.LENGTH_SHORT).show();
			
			new AlertDialog.Builder(this)
			.setTitle("프로그램 종료")
			.setMessage("프로그램을 종료 하시겠습니까?")
			.setPositiveButton("예", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// 프로세스 종료.
					android.os.Process.killProcess(android.os.Process.myPid());
				}
			})
			.setNegativeButton("아니오", null)
			.show();
			
			break;

		default:
			break;
		}
    	
    	return super.onKeyDown(keyCode, event);
    }


  이렇게 구성하시면 뒤로가기 버튼을 눌렀을때 종료 확인창이 출력되며, 확인 버튼을 누르면 어플리케이션이 종료되는것을 확인할 수 있습니다.

Comments