Activity.OnSaveInstanceState 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
OnSaveInstanceState(Bundle) |
상태가 복원되거나 |
OnSaveInstanceState(Bundle, PersistableBundle) |
이는 동일 |
OnSaveInstanceState(Bundle)
상태가 복원되거나 #onRestoreInstanceState
(이 메서드로 채워진 상태가 둘 다에 전달됨) Bundle
종료되기 전에 활동에서 #onCreate
인스턴스별 상태를 검색하기 위해 호출됩니다.
[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")]
protected virtual void OnSaveInstanceState (Android.OS.Bundle outState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle -> unit
매개 변수
- outState
- Bundle
저장된 상태를 배치할 번들입니다.
- 특성
설명
상태가 복원되거나 #onRestoreInstanceState
(이 메서드로 채워진 상태가 둘 다에 전달됨) Bundle
종료되기 전에 활동에서 #onCreate
인스턴스별 상태를 검색하기 위해 호출됩니다.
이 메서드는 작업이 종료되기 전에 호출되므로 나중에 다시 돌아올 때 상태를 복원할 수 있습니다. 예를 들어 활동 B가 활동 A 앞에서 시작되고 특정 시점에서 활동 A가 리소스를 회수하기 위해 종료되는 경우 활동 A는 사용자가 활동 A로 돌아올 때 사용자 인터페이스의 상태를 복원하거나 #onRestoreInstanceState
복원 #onCreate
할 수 있도록 이 메서드를 통해 사용자 인터페이스의 현재 상태를 저장할 수 있습니다.
사용자가 더 이상 활동과 상호 작용하지 않을 때 항상 호출되거나 활동이 보이지 않을 때 호출되는 활동 수명 주기 콜백 #onPause
과 #onStop
이 메서드를 혼동하지 마세요. 이 메서드가 호출되고 이 메서드가 아닌 경우 #onPause
#onStop
의 한 가지 예는 사용자가 활동 B에서 활동 A로 다시 이동할 때입니다. 특정 인스턴스가 복원되지 않으므로 B를 호출 #onSaveInstanceState
할 필요가 없으므로 시스템에서 호출하지 않습니다. A의 사용자 인터페이스 상태가 그대로 유지되므로 A의 수명 동안 종료되지 않은 경우 활동 #onSaveInstanceState
B가 활동 A 앞에 실행될 때 #onPause
호출되지 않고 #onSaveInstanceState
호출되는 경우의 예입니다.
기본 구현은 ID가 있는 계층의 각 뷰를 호출 android.view.View#onSaveInstanceState()
하고 현재 포커스가 있는 뷰의 ID를 저장하여(모두 기본 구현 #onRestoreInstanceState
에 의해 복원됨) 인스턴스당 대부분의 UI 상태를 처리합니다. 각 개별 뷰에서 캡처되지 않은 추가 정보를 저장하기 위해 이 메서드를 재정의하는 경우 기본 구현을 통해 호출하려고 할 수 있습니다. 그렇지 않으면 각 보기의 모든 상태를 직접 저장할 준비가 되어 있습니다.
호출되는 경우 이 메서드는 .로 시작하는 android.os.Build.VERSION_CODES#P
플랫폼을 대상으로 하는 애플리케이션에 대해 발생 #onStop
합니다. 이전 플랫폼 버전을 대상으로 하는 애플리케이션의 경우 이 메서드는 이전 #onStop
또는 이후에 #onPause
발생할지 여부에 대한 보장이 없습니다.
에 대한 android.app.Activity.onSaveInstanceState(android.os.Bundle)
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
추가 정보
적용 대상
OnSaveInstanceState(Bundle, PersistableBundle)
이는 동일 #onSaveInstanceState
하지만 특성 android.R.attr#persistableMode
이 설정된 상태에서 만든 활동에 대해 호출됩니다 persistAcrossReboots
.
[Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")]
public virtual void OnSaveInstanceState (Android.OS.Bundle outState, Android.OS.PersistableBundle outPersistentState);
[<Android.Runtime.Register("onSaveInstanceState", "(Landroid/os/Bundle;Landroid/os/PersistableBundle;)V", "GetOnSaveInstanceState_Landroid_os_Bundle_Landroid_os_PersistableBundle_Handler")>]
abstract member OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit
override this.OnSaveInstanceState : Android.OS.Bundle * Android.OS.PersistableBundle -> unit
매개 변수
- outState
- Bundle
저장된 상태를 배치할 번들입니다.
- outPersistentState
- PersistableBundle
다시 부팅 시 저장되는 상태입니다.
- 특성
설명
이는 동일 #onSaveInstanceState
하지만 특성 android.R.attr#persistableMode
이 설정된 상태에서 만든 활동에 대해 호출됩니다 persistAcrossReboots
. 전달된 작업은 android.os.PersistableBundle
다음 디바이스를 다시 부팅한 #onCreate(Bundle, PersistableBundle)
후 이 작업이 다시 시작될 때 처음으로 저장되고 표시됩니다.
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
추가 정보
- OnSaveInstanceState(Bundle)
- OnCreate(Bundle)
- <xref:Android.App.Activity.OnRestoreInstanceState(Android.OS.Bundle%2c+Android.OS.PersistableBundle)>
- OnPause()