2017년 3월 24일 금요일

Xamarin, Android : 뒤로가기 버튼으로 종료 막기

안드로이드 기기는 뒤로가기 버튼이 있어 편리하긴 한데, 최 상위 액티비티에서 뒤로가기 버튼을 누르면 앱이 종료 되어 버리는 문제가 있다.

이걸 막는 법.

" Action ToolBar 등록 및 메뉴 설정 " 의 앱을 기준으로 설명

간단히 액티비티의 "OnBackPressed()" 를 override 해서 백버튼 눌렀을경우 액션을 재 정의 해 주면 된다.


        public override void OnBackPressed()
        {
            Android.App.AlertDialog.Builder builder = new Android.App.AlertDialog.Builder(this);

            builder.SetPositiveButton("확인", (senderAlert, args) => {
                Finish();
            });

            builder.SetNegativeButton("취소", (senderAlert, args) => {
                return;
            });

            Android.App.AlertDialog alterDialog = builder.Create();
            alterDialog.SetTitle("알림");
            alterDialog.SetMessage("프로그램을 종료 하시겠습니까?");
            alterDialog.Show();
        }

이렇게 OnBackPressed() 에다 확인창을 띄우고 "확인" 을 선택하면 앱을 종료하고, "취소"를 선택하면 그냥 버튼 액션을 무시하도록 구현한다.


그러면 뒤로가기 버튼을 클릭시 확인창이 나타난다.

만약 확인창도 필요 없이 완전히 뒤로가기 버튼을 무시하고 싶다면, OnBackPressed() 에 "return" 구문만을 넣어 주면 된다.