SoftReference Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.
[Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class SoftReference : Java.Lang.Ref.Reference
[<Android.Runtime.Register("java/lang/ref/SoftReference", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type SoftReference = class
inherit Reference
- Наследование
- Атрибуты
Комментарии
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.
Предположим, что сборщик мусора определяет в определенный момент времени, что объект мягкодоступен. В то время он может выбрать, чтобы очистить атомарную все обратимые ссылки на этот объект и все мягкие ссылки на любые другие обратимо доступные объекты, из которых этот объект доступен через цепочку надежных ссылок. В то же время или в некоторое время он будет заквещать только что очищенные обратимые ссылки, зарегистрированные в очередях ссылок.
Все обратимые ссылки на обратимые объекты гарантированно очищаются до того, как виртуальная машина создает исключение OutOfMemoryError
. В противном случае ограничения не помещаются во время очистки обратимой ссылки или порядка очистки набора таких ссылок на различные объекты. Однако реализации виртуальных машин рекомендуется предвзять к очистке недавно созданных или недавно используемых обратимых ссылок.
<h3>Избегайте обратимых ссылок для кэширования</h3> На практике обратимые ссылки неэффективны для кэширования. Среда выполнения не содержит достаточно сведений о том, какие ссылки следует очистить и которые следует сохранить. В большинстве случаев это не знает, что делать при выборе между очисткой мягкой ссылки и ростом кучы.
Отсутствие информации о значении для вашего приложения каждой ссылки ограничивает полезность обратимых ссылок. Ссылки, которые очищаются слишком рано, вызывают ненужную работу; те, которые очищаются слишком поздно памяти отходов.
Большинство приложений должны использовать android.util.LruCache
вместо обратимых ссылок. LruCache имеет эффективную политику вытеснения и позволяет пользователю настроить объем выделенной памяти.
Добавлено в версии 1.2.
Документация по Java для java.lang.ref.SoftReference
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
SoftReference(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
SoftReference(Object) |
Создает новую обратимую ссылку, которая ссылается на данный объект. |
SoftReference(Object, ReferenceQueue) |
Создает новую обратимую ссылку, которая ссылается на заданный объект и регистрируется в заданной очереди. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
IsEnqueued |
Проверяет, находится ли этот ссылочный объект в связанной очереди, если таковой имеется. (Унаследовано от Reference) |
JniIdentityHashCode |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
JniPeerMembers |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. |
PeerReference |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Clear() |
Очищает этот эталонный объект. (Унаследовано от Reference) |
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от Object) |
Dispose() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
Dispose(Boolean) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
Enqueue() |
Добавляет этот ссылочный объект в очередь, с которой она зарегистрирована, если она есть. (Унаследовано от Reference) |
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
Get() |
Возвращает референт этого эталонного объекта. (Унаследовано от Reference) |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
RefersTo(Object) |
Проверяет, является |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
ToArray<T>() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.Finalized() |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.JniManagedPeerState |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. (Унаследовано от Object) |
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. |
GetJniTypeName(IJavaPeerable) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. |