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.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя Описание
SoftReference(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

SoftReference(Object, ReferenceQueue)

Создает новую обратимую ссылку, которая ссылается на заданный объект и регистрируется в заданной очереди.

SoftReference(Object)

Создает новую обратимую ссылку, которая ссылается на данный объект.

Свойства

Имя Описание
Class

Возвращает класс среды выполнения этого Objectобъекта.

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

Дескриптор базового экземпляра Android.

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

Проверяет, находится ли этот ссылочный объект в связанной очереди, если таковой имеется.

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

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

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

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

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

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя Описание
Clear()

Очищает этот эталонный объект.

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

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

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

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

Добавляет этот ссылочный объект в очередь, с которой она зарегистрирована, если она есть.

(Унаследовано от Reference)
Equals(Object)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

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

Возвращает референт этого эталонного объекта.

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

Возвращает хэш-значение кода для объекта.

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

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

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

Просыпается один поток, ожидающий монитора этого объекта.

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

Просыпает все потоки, ожидающие монитора этого объекта.

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

Проверяет, является objли ссылка этого эталонного объекта.

(Унаследовано от Reference)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

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

Возвращает строковое представление объекта.

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

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

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

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

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

Явные реализации интерфейса

Имя Описание
IJavaPeerable.Disposed()

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

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

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

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

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