2012-10-19 5 views
0

내 앱에는 검색 기능이 있으며 SearchPage2.java라는 검색 활동이 있으며 목록 항목을 클릭하면 더 많은 정보를 보여주는 또 다른 활동 (SearchTaDa.java)이 있습니다. SearchTaDa.java에서 내 소프트웨어 뒤로 버튼 (또는 하드웨어 뒤로 버튼)을 누를 때 ListView가 계속 표시되기를 원하기 때문에 SearchPage2.java에서 onPause()finish()을 호출 할 수 없음을 발견했습니다. 그러나 SearchPage2.java에서 finish()을 호출하지 않기 때문에 하드웨어 홈 버튼을 눌러 앱을 종료 한 다음 앱을 다시 시작하면 시작 화면에서 앱을 다시 시작하는 대신 SearchPage2 활동으로 바로 돌아갑니다. 앱의Android onPause 문제

@Override 
protected void onPause() { 
    super.onPause(); 
    overridePendingTransition(R.anim.fadein, R.anim.fadeout); 
    finish(); 
} 

내 질문은 내가 그래서 당신이 다시 시작할 때하는 SearchPage2 활동에서 호출 할 수 있습니다 무엇 : SearchTaDa.java onPause의 모습

@Override 
protected void onPause() { 
    super.onPause(); 
    overridePendingTransition(R.anim.fadein, R.anim.fadeout); 
} 

및 추가 정보 활동 :처럼 그래서 SearchPage2 onPause 보인다 앱이 처음 시작되어 검색 페이지에서 다시 시작하지 않습니까?

+2

대신 onPause를 죽이는 no-history-flag으로 activitys 전화 청소기 될 것이다. 그것을 배경에 넣기 만하면됩니다. 사용자가 앱을 종료하고 다시 시작하려는 경우 뒤로 버튼 (또는 다시 실행 바 항목)을 선택합니다. –

답변

0

플래그가 설정된 경우 글로벌 플래그 "destroyOnResume"을 설정하고 onResume을 호출하십시오. 자세히

더 다음 SearchPage2Activity가 호출 될 다음 번에 완료하고 글로벌 회원으로 예 코드 어딘가에 당신의 깃발을 조정해야하는 경우 코드에서

어딘가에 당신이 알아 ...

public static boolean destroySearchPage2OnResume = false; 

또는 SharedPreferences에 넣으세요. 앱을 종료해도 유지됩니다.

SearchPage2.java에서 앱이 백그라운드로 들어갈 때 onRestart() 또는 onPause() 이후에 호출되는 onResumeMethod를 재정의합니다. 플래그가 true로 설정되면 SearchPage2 활동이 바로 끝납니다. 그런데

@Override 
protected void onResume() { 
    super.onPause(); 
    if(destroySearchPage2OnResume){ 
    this.finish(); 
    } 
} 

, 홈 버튼은 응용 프로그램을 종료하기로되지 누르면 ...

+0

나는 역사가없는 생각을 이해하지만 destroyOnResume 코드 샘플을 제공해 줄 수 있습니까? 나는 그게 무슨 뜻인지 이해하지 못합니다. – CaptKirk

+0

'\t protected void destroyOnResume() { \t \t SearchPage2.this.finish(); \t}이게 맞습니까? 그렇다면 앱에서 아무 것도하지 않는 것 같습니다. – CaptKirk

+0

편집 내 게시물 - 도움이됩니까? –

관련 문제