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.Service, ContentProviderи android.app.Application).

Следует реализовать постепенное #onTrimMemory освобождение памяти на основе текущих системных ограничений. Использование этого обратного вызова для освобождения ресурсов помогает обеспечить более быструю работу системы в целом, но и напрямую способствует взаимодействию с пользователем приложения, позволяя системе дольше поддерживать работу вашего процесса. То есть, если вы <>не<> обрезаете ресурсы на основе уровней памяти, определенных этим обратным вызовом, система, скорее всего, завершит ваш процесс, пока он кэшируется в списке наименее недавно использовавшихся (LRU), что потребует от вашего приложения перезапуска и восстановления всего состояния, когда пользователь вернется к нему.

Значения, предоставляемые , #onTrimMemory не представляют ни одного линейного изменения ограничений памяти, но предоставляют различные типы подсказок о доступности памяти:

<ul><li>Когда приложение работает: <ol><li<>#TRIM_MEMORY_RUNNING_MODERATEbr>Устройство начинает работать с нехваткой памяти. Приложение выполняется и не может быть завершено. <li>#TRIM_MEMORY_RUNNING_LOW<br>Устройство работает гораздо меньше памяти. Приложение выполняется и не может быть завершено, но, пожалуйста, освободите неиспользуемые ресурсы, чтобы повысить производительность системы (что напрямую влияет на производительность приложения). <li>#TRIM_MEMORY_RUNNING_CRITICAL<br>Устройство работает очень мало памяти. Ваше приложение пока не считается процессом, который можно завершить, но система начнет уничтожать фоновые процессы, если приложения не освобождают ресурсы, поэтому вам следует освободить некритичные ресурсы сейчас, чтобы предотвратить снижение производительности. </ol>/li><li>При изменении видимости приложения: <ol><li>#TRIM_MEMORY_UI_HIDDEN<br>пользовательский интерфейс вашего приложения больше не отображается, поэтому пришло время освободить большие ресурсы, которые используются только вашим пользовательским интерфейсом.< </ol>/li><li>. Если процесс приложения находится в фоновом списке LRU: <ol><li>#TRIM_MEMORY_BACKGROUND<br>В системе недостаточно памяти, и процесс находится в начале списка LRU.< Хотя процесс приложения не подвержен высокому риску завершения, система уже может привести к уничтожению процессов в списке LRU, поэтому следует освободить ресурсы, которые легко восстановить, чтобы процесс оставался в списке и быстро возобновлялся, когда пользователь вернется в приложение. <li>#TRIM_MEMORY_MODERATE<br>В системе недостаточно памяти, и ваш процесс находится ближе к середине списка LRU. Если система становится еще более ограниченной для памяти, есть вероятность того, что ваш процесс будет завершен. <li>#TRIM_MEMORY_COMPLETE<br>Система работает с нехваткой памяти, и ваш процесс одним из первых будет завершен, если система не восстанавливает память сейчас. Вы должны освободить абсолютно все, что не является критически важным для возобновления состояния приложения.

Для поддержки уровней API ниже 14 можно использовать #onLowMemory метод в качестве резервного, примерно эквивалентного уровню ComponentCallbacks2#TRIM_MEMORY_COMPLETE . </li></ol><p class="note"><strong>Примечание.</strong> Когда система начинает уничтожать процессы в списке LRU, хотя он в основном работает снизу вверх, он учитывает, какие процессы потребляют больше памяти, и, таким образом, обеспечивает больший прирост в памяти в случае их завершения. Таким образом, чем меньше памяти вы потребляете, находясь в списке LRU в целом, тем выше ваши шансы остаться в списке и быть в состоянии быстро возобновить работу.

</li></ul>

Дополнительные сведения о различных этапах жизненного цикла процесса (например, о том, что означает размещение в фоновом списке LRU) приведены в документе Процессы и потоки .

Документация по Java для android.content.ComponentCallbacks2.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.

Свойства

Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызова.

(Унаследовано от IJavaPeerable)
PeerReference

Возвращает экземпляр JniObjectReference объекта Java, заключенный в оболочку.

(Унаследовано от IJavaPeerable)

Методы

Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если отсутствуют невыполненные ссылки на этот экземпляр, вызывает метод Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Finalized()

Вызывается при завершении работы экземпляра.

(Унаследовано от 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 вызовов.

(Унаследовано от IJavaPeerable)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Расширенный ComponentCallbacks интерфейс с новым обратным вызовом для более точного управления памятью.

GetJniTypeName(IJavaPeerable)

Расширенный ComponentCallbacks интерфейс с новым обратным вызовом для более точного управления памятью.

Применяется к