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

Title Bar에 Home과 Back 버튼 만들어 기능 구현하기

0 추천

Title Bar에 Home 버튼과 Back 버튼을 눌러서 기능을 구현하였습니다.

 private boolean setTitleBar(){
  ImageView btn_go_home = (ImageView) findViewById(R.id.btn_go_home);
  btn_go_home.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    Toast.makeText(o00_OverView.this, "Go Home", Toast.LENGTH_LONG).show(); 
    Intent intentHome = new Intent(o00_OverView.this, m00_SmartGuide.class);
    intentHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intentHome.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(intentHome);
    finish();
   }
  });
  
  ImageView btn_go_back = (ImageView) findViewById(R.id.btn_go_back);
  btn_go_back.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    Toast.makeText(o00_OverView.this, "Go Back", Toast.LENGTH_LONG).show();
    finish();
   }
  });

  return true;
 }

위와 같이 기능을 구현하였는데요.

 

Test를 하다보니 제가 원하는 동작을 하지 않더라고요.

예를 들어서, A Activity -> B Activity로 이동시 Animation을 주었을 경우, B Activity에서 제가 만든 Back Button을 눌러 A Activity이동 하였을 경우와 System back button을 눌러 이동을 하였을 경우를 비교하였을 때 다음 동작에서 달리 동작을 합니다.

A Activity ->(Animation 정상 동작) -> B Activity (Custom Back Button) -> A Activity ->(Animation 동작 안함)->B Activity

A Activity ->(Animation 정상 동작)-> B Activity (Custom Back Button) -> A Activity ->(Animation 정상 동작)-> B Activity

아무래도 Back이나 Home 이동시 Activity Manager에게 관련된 정보를 없애는 무언가가 있는 것 같은데, 모르겠습니다.

혹시 아시면 좀 알려주세요~

컴천재 (2,580 포인트) 님이 2013년 7월 3일 질문

1개의 답변

0 추천
finish();

가 아닌 onBackPressed()를 호출해보세요~~!
ThisPlus (46,920 포인트) 님이 2013년 7월 3일 답변
onBackPressed()를 호출하였더니, App이 아예 종료가 되더라고요.
감사합니다.
...