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_MODERATE
br>Устройство начинает работать с нехваткой памяти. Приложение выполняется и не может быть завершено. <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 |
Возвращает значение |
JniManagedPeerState |
Состояние управляемого однорангового узла. (Унаследовано от IJavaPeerable) |
JniPeerMembers |
Поддержка доступа к членам и вызова. (Унаследовано от IJavaPeerable) |
PeerReference |
Возвращает экземпляр JniObjectReference объекта Java, заключенный в оболочку. (Унаследовано от IJavaPeerable) |
Методы
Disposed() |
Вызывается при удалении экземпляра. (Унаследовано от IJavaPeerable) |
DisposeUnlessReferenced() |
Если отсутствуют невыполненные ссылки на этот экземпляр, вызывает метод |
Finalized() |
Вызывается при завершении работы экземпляра. (Унаследовано от IJavaPeerable) |
OnConfigurationChanged(Configuration) |
Вызывается системой при изменении конфигурации устройства во время работы компонента. (Унаследовано от IComponentCallbacks) |
OnLowMemory() |
Это вызывается, когда в системе недостаточно памяти, а активно выполняющиеся процессы должны сокращать использование памяти. (Унаследовано от IComponentCallbacks) |
OnTrimMemory(TrimMemory) |
Вызывается, когда операционная система определила, что это хорошее время для процесса, чтобы обрезать ненужные памяти из процесса. |
SetJniIdentityHashCode(Int32) |
Задайте значение, возвращаемое . |
SetJniManagedPeerState(JniManagedPeerStates) |
Расширенный |
SetPeerReference(JniObjectReference) |
Задайте значение, возвращаемое . |
UnregisterFromRuntime() |
Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала его из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов. (Унаследовано от IJavaPeerable) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверенного средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Расширенный |
GetJniTypeName(IJavaPeerable) |
Расширенный |