2017-12-30 6 views
1

나는 이미지보기로 간단한 활동을하고, 사용 된 간단한 menuItem이 이전 활동으로 되돌아 왔습니다. 뒤로 버튼이 onOptionItemSelected 메뉴에서 finish()를 호출하는 것보다 빠릅니다.

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case android.R.id.home: 
      finish(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

난 그냥 내가 이전 활동에 다시 안드로이드를 주셔서 다시 버튼을 누르면 정말 빨리 그것을 할 것을 깨달았다하지만, 위의 메뉴 항목을 누르면, 그것은 두 번째를 낭비. 왜?

답변

1

수익을 수행하는 기본 방법은 다시 finish()를 호출하여

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()){ 
     case android.R.id.home: 
      return super.onOptionsItemSelected(item); 
    } 
} 

당신이 즉 onDestroy() 전화, 파괴의 현재 활동 일정입니다. 이렇게하면 정리가 이루어지기 때문에 오버 헤드가 발생하고 대기 시간이 발생합니다. 따라서 실제로 (예 : 일부 대화 상자 또는 커서를 닫으려면) finish()을 사용하지 않으려면 생략하고 제공된 기본 솔루션을 사용하십시오.

희망이 도움이됩니다.

+0

나는 시도한다. 이것은 previus 활동으로 돌아 오지 않는다! 그냥 아무 일도 일어나지 않는다. 내 코드를 게시한다. 활동이 정상적인 의도에서 열린다 .. @Override public boolean onOptionsItemSelected (MenuItem item) { switch (item.getItemId()) { case android.R.id.home : return super.onOptionsItemSelected (item); 사례 R.id.share_image : // TODO return true; 기본값 : return super.onOptionsItemSelected (item); } } –

+0

매니페스트 파일에 활동의 논리적 상위를 제공해야합니다. 그 속성은'android : parentActivityName'입니다. – user8

관련 문제