2013-10-06 2 views
23

기기가 잠금 화면을 사용하도록 설정하면 다음과 같은 현상이 발생했습니다. 이 활동의 ​​경우 android : screenOrientation = "landscape"가 매니페스트에 설정됩니다. 그런 다음 휴대 전화에서 세로 모드로 다음을 수행합니다.Android 활동주기 및 잠금/잠금 해제 기기

  1. 사용자가 활동을 엽니 다.
  2. onCreated()는
  3. onResume() 사용자가 4.5 onPause가 호출 장치()
  4. 들의 OnDestroy을 (잠금
  5. 라고 함)라고 불린다()
  6. ONSTART라고
  7. 에서 onCreate()가()
  8. 라고 8.5 onPause라고
  9. onResume()를 호출()
  10. ONSTART라고 5,
  11. 사용자는 호출()
  12. onResume()를 호출
  13. ONSTART()를 호출
  14. 에서 onCreate()를 호출 장치를
  15. onResume을 여는
  16. 들의 OnDestroy 불린다.

좋아요, 왜 화면이 꺼진 후에 6,7,8이 실행되는지 이해할 수 없습니다 .. 또한 11, 12, 13, 14가 실행되는 이유를 모르겠습니다. 기기를 잠그고 잠금 해제 할 때 이상한 일이 발생합니까? 나는 갑자기 활동 라이프 사이클과 혼동을 느낍니다. 누구든지 이것을 명확히 할 수 있습니까?

무관 코드와 로그 MSG

package com.example.wf; 

import android.app.Activity; 
import android.os.Bundle; 
import android.util.Log; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Log.d("log", "oncreate"); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     Log.d("log", "onresume"); 
    }; 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     Log.d("log", "onstart"); 
    }; 

    @Override 
    protected void onPause() { 
     super.onStart(); 
     Log.d("log", "onpause"); 
    }; 

    @Override 
    protected void onDestroy() { 
     Log.d("log", "ondestroy");  
     super.onDestroy(); 
    }; 
} 

로그 MSG를 (방향 잠금 초상화 또는 정제) 휴대 전화에

10-05 23:11:07.994: D/log(23810): oncreate 
10-05 23:11:07.994: D/log(23810): onstart 
10-05 23:11:07.994: D/log(23810): onresume 
// LOCK DEVICE 
10-05 23:11:19.957: D/log(23810): ondestroy 
10-05 23:11:20.007: D/log(23810): oncreate 
10-05 23:11:20.007: D/log(23810): onstart 
10-05 23:11:20.007: D/log(23810): onresume 
// UNLOCK DEVICE 
10-05 23:11:57.407: D/log(23810): onresume 
10-05 23:11:57.537: D/log(23810): ondestroy 
10-05 23:11:57.587: D/log(23810): oncreate 
10-05 23:11:57.587: D/log(23810): onstart 
10-05 23:11:57.587: D/log(23810): onresume 
+0

다양한 옵션을 시도해 본지 2 일 이래로 고생했습니다. – suku

답변

35

는 잠금 화면은 세로입니다. 따라서 장치가 잠겨 있으면 장치가 자동으로 세로 모드 (6, 7, 8 및 9를 유발 함)로 전환됩니다. 장치가 잠금 해제 된 후 Activity이 표시 될 때 onResume()이 호출되지만 세로 방향과 가로 방향 고정 상태 사이에서 다시 전환되므로 작업이 파괴되어 가로 방향으로 다시 생성됩니다.

+0

좋은 설명. – Vicky

+0

완벽하게 설명되어 있습니다. 가로 모드 인 경우에만 잠금/잠금 해제에 작업이 재생성됩니다. – AnujDeo

2

활동 재 작성 시나리오가 끝나면 android : configChanges = "orientation"속성을 사용하여 android manifest 파일로 활동 레벨에서 구성 변경 사항을 처리 할 수 ​​있습니다.

+0

이것은 나를 위해 작동하지 않았다. – portfoliobuilder