맞다면 메인 엑티비티 상에서 onKeyDown을 통하여 백버튼의 행동에 대한 정의를 할 수 있습니다.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event){
switch(keyCode){
case KeyEvent.KEYCODE_BACK:
String alertTitle = "종료";
new AlertDialog.Builder(StarterActivity.this)
.setTitle(alertTitle)
.setMessage("프로그램을 완전히 종료합니다.\n종료 하시겠습니까?")
.setPositiveButton("예", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
moveTaskToBack(true);
finish();
// 메모리 상태에서 완전한 종료를 취한다.
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
}
})
.setNegativeButton("아니오", null)
.show();
}
return true;
}
am.restartPackage(getPackageName()); 는 완전한 프로세스상에 메모리를 해제합니다.
이 메서드를 사용하려면 메니페스트에 <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
백버튼이 눌릴 시 팝업으로 종료할 것을 알리고 예를 누르면 완전 종료하게끔 하고..
일반적으로 sub엑티비티 상태에선 뒤로가고 싶으신건가요..?
맞다면 메인 엑티비티 상에서 onKeyDown을 통하여 백버튼의 행동에 대한 정의를 할 수 있습니다.
@Override public boolean onKeyDown(int keyCode, KeyEvent event){ switch(keyCode){ case KeyEvent.KEYCODE_BACK: String alertTitle = "종료"; new AlertDialog.Builder(StarterActivity.this) .setTitle(alertTitle) .setMessage("프로그램을 완전히 종료합니다.\n종료 하시겠습니까?") .setPositiveButton("예", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { moveTaskToBack(true); finish(); // 메모리 상태에서 완전한 종료를 취한다. ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE); am.restartPackage(getPackageName()); } }) .setNegativeButton("아니오", null) .show(); } return true; }am.restartPackage(getPackageName()); 는 완전한 프로세스상에 메모리를 해제합니다.
이 메서드를 사용하려면 메니페스트에 <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
권한을 추가해주세요..