IComponentCallbacks2 인터페이스

정의

세분화된 메모리 관리를 위한 새 콜백이 있는 확장 ComponentCallbacks 된 인터페이스입니다.

[Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")]
public interface IComponentCallbacks2 : Android.Content.IComponentCallbacks, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/content/ComponentCallbacks2", "", "Android.Content.IComponentCallbacks2Invoker")>]
type IComponentCallbacks2 = interface
    interface IComponentCallbacks
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
파생
특성
구현

설명

세분화된 메모리 관리를 위한 새 콜백이 있는 확장 ComponentCallbacks 된 인터페이스입니다. 이 인터페이스는 모든 애플리케이션 구성 요소(android.app.Activity, , android.app.ServiceContentProviderandroid.app.Application)에서 사용할 수 있습니다.

를 구현 #onTrimMemory 하여 현재 시스템 제약 조건에 따라 메모리를 증분 방식으로 해제해야 합니다. 이 콜백을 사용하여 리소스를 해제하면 전반적으로 응답성이 뛰어난 시스템을 제공할 수 있지만 시스템이 프로세스를 더 오래 유지할 수 있도록 하여 앱의 사용자 환경에 직접적인 이점을 제공합니다. 즉, 이 콜백에서 정의한 메모리 수준에 따라 리소스를 트리밍하지<> 않는 경우 <>시스템은 가장 최근에 사용한(LRU) 목록에 캐시되는 동안 프로세스를 종료할 가능성이 높으므로 사용자가 다시 돌아올 때 앱을 다시 시작하고 모든 상태를 복원해야 합니다.

에서 #onTrimMemory 제공하는 값은 메모리 제한의 단일 선형 진행을 나타내지 않지만 메모리 가용성에 대한 다양한 유형의 단서를 제공합니다.

<ul>li 앱이 실행 중일 때: <ol><li>#TRIM_MEMORY_RUNNING_MODERATE<br>디바이스가 메모리 부족으로 실행하기 시작했습니다.>< 앱이 실행 중이며 종료할 수 없습니다. <li>#TRIM_MEMORY_RUNNING_LOW<br>디바이스가 메모리에서 훨씬 더 낮게 실행됩니다. 앱이 실행 중이며 종료할 수 없지만 사용하지 않는 리소스를 릴리스하여 시스템 성능을 향상시킵니다(앱 성능에 직접적인 영향을 줍니다). <li>#TRIM_MEMORY_RUNNING_CRITICAL<br>디바이스가 메모리가 매우 낮게 실행되고 있습니다. 앱은 아직 종료 가능한 프로세스로 간주되지 않지만 앱이 리소스를 해제하지 않으면 시스템이 백그라운드 프로세스를 종료하기 시작하므로 성능 저하를 방지하기 위해 중요하지 않은 리소스를 지금 릴리스해야 합니다. </ol>/li><li>앱의 표시 유형이 변경될 때: <ol<>li>#TRIM_MEMORY_UI_HIDDEN<br>앱의 UI가 더 이상 표시되지 않으므로 UI에서만 사용되는 대규모 리소스를 릴리스하는 것이 좋습니다.< </ol>/li><li>앱의 프로세스가 백그라운드 LRU 목록에 있는 경우: <ol<>li>#TRIM_MEMORY_BACKGROUND<br>시스템이 메모리가 부족하고 프로세스가 LRU 목록의 시작 부분에 가깝습니다.< 앱 프로세스가 종료될 위험이 높지는 않지만 시스템이 이미 LRU 목록에서 프로세스를 종료하고 있을 수 있으므로 복구하기 쉬운 리소스를 해제하여 프로세스가 목록에 남아 있고 사용자가 앱으로 돌아올 때 신속하게 다시 시작해야 합니다. <li>#TRIM_MEMORY_MODERATE<br>시스템이 메모리가 부족하고 프로세스가 LRU 목록의 중간에 있습니다. 시스템이 메모리에 대해 더 제한되면 프로세스가 종료될 가능성이 있습니다. <li>#TRIM_MEMORY_COMPLETE<br>시스템이 메모리가 부족하고 시스템이 지금 메모리를 복구하지 않으면 프로세스가 가장 먼저 종료되는 중 하나입니다. 앱 상태를 다시 재개하는 데 중요하지 않은 모든 항목을 절대적으로 해제해야 합니다.

14보다 낮은 API 수준을 지원하려면 메서드를 #onLowMemory 대략 수준에 해당하는 ComponentCallbacks2#TRIM_MEMORY_COMPLETE 대체(fallback)로 사용할 수 있습니다. </li></ol><p class="note"><strong>Note:</strong> 시스템이 LRU 목록에서 프로세스를 종료하기 시작할 때, 주로 상향식으로 작동하지만, 어떤 프로세스가 더 많은 메모리를 소비하는지에 대한 몇 가지 고려 사항을 제공하므로 종료되는 경우 메모리에서 더 많은 이익을 제공합니다. 따라서 전체 LRU 목록에 있는 동안 사용하는 메모리가 적을수록 목록에 남아 빠르게 다시 시작할 가능성이 높아집니다.

</li></ul>

프로세스 수명 주기의 다양한 단계(예: 백그라운드 LRU 목록에 배치한다는 의미)에 대한 자세한 내용은 프로세스 및 스레드 문서에 제공됩니다.

에 대한 Java 설명서입니다 android.content.ComponentCallbacks2.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

속성

Handle

기본 Android 개체의 JNI 값을 가져옵니다.

(다음에서 상속됨 IJavaObject)
JniIdentityHashCode

java.lang.System.identityHashCode() 래핑된 instance 값을 반환합니다.

(다음에서 상속됨 IJavaPeerable)
JniManagedPeerState

관리되는 피어의 상태입니다.

(다음에서 상속됨 IJavaPeerable)
JniPeerMembers

멤버 액세스 및 호출 지원.

(다음에서 상속됨 IJavaPeerable)
PeerReference

JniObjectReference 래핑된 Java 개체 instance 의 를 반환합니다.

(다음에서 상속됨 IJavaPeerable)

메서드

Disposed()

instance 삭제되었을 때 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
DisposeUnlessReferenced()

이 instance 대한 미해결 참조가 없으면 를 호출Dispose()합니다. 그렇지 않으면 아무 것도 수행하지 않습니다.

(다음에서 상속됨 IJavaPeerable)
Finalized()

instance 완료되면 호출됩니다.

(다음에서 상속됨 IJavaPeerable)
OnConfigurationChanged(Configuration)

구성 요소가 실행되는 동안 디바이스 구성이 변경되면 시스템에서 호출됩니다.

(다음에서 상속됨 IComponentCallbacks)
OnLowMemory()

이는 전체 시스템이 메모리가 부족하고 적극적으로 실행 중인 프로세스가 메모리 사용량을 다듬어야 할 때 호출됩니다.

(다음에서 상속됨 IComponentCallbacks)
OnTrimMemory(TrimMemory)

운영 체제가 프로세스에서 불필요한 메모리를 자르는 것이 좋은 시기라고 판단했을 때 호출됩니다.

SetJniIdentityHashCode(Int32)

에서 반환 JniIdentityHashCode된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

세분화된 메모리 관리를 위한 새 콜백이 있는 확장 ComponentCallbacks 된 인터페이스입니다.

(다음에서 상속됨 IJavaPeerable)
SetPeerReference(JniObjectReference)

에서 반환 PeerReference된 값을 설정합니다.

(다음에서 상속됨 IJavaPeerable)
UnregisterFromRuntime()

런타임이 이후 Java.Interop.JniRuntime+JniValueManager.PeekValue 호출에서 반환되지 않도록 이 instance 등록을 취소합니다.

(다음에서 상속됨 IJavaPeerable)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

세분화된 메모리 관리를 위한 새 콜백이 있는 확장 ComponentCallbacks 된 인터페이스입니다.

GetJniTypeName(IJavaPeerable)

세분화된 메모리 관리를 위한 새 콜백이 있는 확장 ComponentCallbacks 된 인터페이스입니다.

적용 대상