2010-01-14 4 views
13

홈 화면에서 내 앱을 실행하고 일부 활동을 탐색 한 다음 홈 키를 누르고 Gmail 앱에서 다른 작업을 수행한다고 가정 해 보겠습니다.백그라운드에서 안드로이드 앱 스택 복원

메일을 확인한 후 홈 키를 다시 눌러 Gmail 앱을 종료하고 홈 화면에서 내 앱 아이콘을 다시 클릭하여 돌아갑니다.

내 앱으로 돌아 왔을 때 마지막 활동으로 돌아가고 싶습니다. 완전히 새로운 세션을 시작하지 마십시오. 나는 이것을 하루 종일 알아 내려고 노력해 왔습니다.

<activity android:name=".Main" 
       android:label="@string/app_name" 
       android:screenOrientation="portrait" 
       android:alwaysRetainTaskState="true"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

카테고리가 런처 내 앱이 항상 활동 홈페이지에서 시작하세요 특성, 내가 마지막으로 활동을 복원 대해 이동하는 방법을 모른다 다음과 같이 첫 활동에 대한

내 매니페스트입니다. 사람들은 나에게 sharedpreferences를 사용하여 마지막 활동을 저장하고 Launch에로드하도록 지시했으나 매우 우아하지 않기 때문에 그렇게 할 생각은 없습니다.

+0

매니페스트가 정상적으로 표시됩니다. 그것은 예상대로 작동해야합니다. 이 사실상 동일한 질문과 같이 디버거에서 볼 수만 있다면 어떨까요? http://stackoverflow.com/questions/2061143/android-keep-tasks-activity-stack-after-restart-from-home/2061447 –

+5

나는 당신의 대답을 얻은 것처럼 그것을 알아 냈다. 그것은 일식 디버깅과 관련이 없었다. 하지만 실행 구성과 관련이 있습니다. 시작 액션을 Android 탭 아래에서 Launch Default Activity로 설정했습니다. 나는 이것을 "Do Nothing"으로 변경했고 트릭을했습니다. 나는 이것을 깨닫는 데 너무 오래 걸렸다는 것을 믿을 수 없다! 덕분에 – jlim

+0

아 하, 또한 좋은! –

답변

0

하면 매니페스트에 다음 중 하나를 사용하십시오 :

<activity android:launchMode=["multiple" | "singleTop" | 
           "singleTask" | "singleInstance"] ... 
1

내가 생각하는 그 유일한 방법은 앱이 실행기 응용 프로그램이 의도 "android.intent.action.MAIN를 전송하는 것입니다 출시 때 어떤 일이 발생하기 때문에 "이 의도에 응답하는 앱의 유일한 활동은 주요 활동이므로 활성화됩니다. 그래서 당신이 할 수있는 유일한 일은 세션 어딘가에 저장하고 이미 세션을 저장 한 경우 활동을 시작하는 것입니다 이전 상태로 응용 프로그램을 복원합니다.

0

onResume() 및 onPause가 제대로 구현 되었습니까?

protected void onResume(){ 
    super.onResume(); 
} 

protected void onPause() { 
    super.onPause(); 
} 
관련 문제