마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱을 뒤로가기 버튼으로 종료할 때 생기는 문제(급해요ㅜㅜㅜ부탁드려요)

0 추천
public boolean onKeyDown(int keyCode, KeyEvent event) {
      switch (keyCode) {
      case KeyEvent.KEYCODE_BACK:
         String alertTitle = getResources().getString(R.string.app_name);
         String buttonMessage = getResources().getString(
               R.string.alert_msg_exit);
         String buttonYes = getResources().getString(R.string.button_yes);
         String buttonNo = getResources().getString(R.string.button_no);

         new AlertDialog.Builder(CameraCloth1.this)
         .setTitle(alertTitle)
         .setMessage(buttonMessage)
         .setPositiveButton(buttonYes,
               new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
               // TODO Auto-generated method stub
               moveTaskToBack(true);
               finish();
            }
         }).setNegativeButton(buttonNo, null).show();
      }
      return true;
   }

뒤로가기 버튼을 누르면 알림창을 띄우면서 앱을 종료시키도록 만들었는데요

종료 후 그 앱을 다시 실행시키면 처음 화면이 나오지 않고 그 앱을 종료하기 전에 있던 액티비티로 돌아갑니다.

예를들어 a->b->c->종료 했다면 다시 실행시키면  c화면으로 들어가진 후 다시 실행하면 b화면으로 그 후 다시 실행하면

a화면으로들어가진 후 다시 종료시켰다 실행시키면 그때서야 첫번째 화면이 나옵니다.

어떻게 해결해야 할까요?

뒤로가기종료 코드 첨부할게요 답변 제발 부탁드려요 ㅠㅠㅠ 정말 급합니다 ㅠㅜㅠ

익명사용자 님이 2014년 8월 24일 질문
a->b->c-> 로 진입할때 startActivityForResult를 이용해서 처리하도록 해보세요. finish(); 전에 setResult(RESULT_OK) 또는 setResult(RESULT_CANCEL) 과 같은 데이터 세팅으로 분기도 가능합니다.
최종적으로 c에서 만약 finish()를 해야한다면 역순으로 onActivityResult(...) 에서 받아서 일일이 분기해서 finish() 하시는 편이 바람직해 보입니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...