2012-10-28 3 views
0

스플래시 화면에 문제가 있습니다. 앱을 실행하면 스플래시 화면 활동이 몇 초 동안 시작됩니다. 그 후 주요 활동이 시작됩니다.앱이 이미 메모리에있는 경우 스플래시 화면을로드하지 않으려면 어떻게합니까?

메인 활동의 홈 버튼을 누른 다음 앱 목록에서 앱을 다시 시작하면 이미 앱이 다시 스택에 있지만 스플래시 활동이 다시 시작됩니다. 그러나 나는 주된 활동이 기억으로부터 회복 될 것으로 기대한다.

그리고 뒤로 버튼을 누르면 안드로이드가 주 활동의 이전 사본으로 나를 돌려 보낸다.

스플래시 화면을 한 번만 표시하려면 어떻게해야합니까? 홈 버튼을 클릭하기 전에 마지막으로 본 화면에서 내 앱을 다시 시작하는 방법은 무엇입니까?

<activity 
      android:name=".ui.SplashActivity" 
      android:noHistory="true" 
      android:screenOrientation="portrait" 
      android:label="@string/app_name"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 
    </activity> 

    <activity android:name=".ui.MainActivity"/> 

답변

5

이것은 디자인 문제입니다. 런처 활동이 스플래시 화면 활동이 아니어야합니다. 대신, 주 활동의 onCreate 메소드에서 스플래시 활동을여십시오. 그렇게하면 신선한 상태로 열리면 onCreate가 호출되고 스플래시 화면이 표시됩니다. 그렇지 않으면 앱이 단지 다시 시작되고 onResume을 호출하면 스플래시 화면 활동을 열어 볼 호출이 없습니다.

그런 다음이에 매니페스트를 변경할 수 있습니다 좋은 찾고되지 무슨

<activity 
     android:name=".ui.MainActivity" 
     android:noHistory="true" 
     android:screenOrientation="portrait" 
     android:label="@string/app_name"> 

    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
</activity> 

<activity android:name=".ui.SplashActivity"/> 
+0

- 첫 번째 활동에서 열립니다 후 다른, 그때 시작 화면 (심지어 애니메이션없이)를 참조하십시오. 사용자는 배경 정보를 보지 않아야합니다. – bluebyte

+0

@bluebyte, 당신의'onCreate' 메소드는 어떻게 생겼을까요? – Phil

+0

실수로 답에이 정보를 입력했습니다. – bluebyte

관련 문제