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 |
Возвращает класс среды выполнения этого |
| 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) |
Проверяет, является |
| 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 типа экземпляра |
| JavaAs<TResult>(IJavaPeerable) |
Попробуйте принуждать к типу |
| JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
| JavaCast<TResult>(IJavaObject) |
Объекты обратимой ссылки, которые очищаются по усмотрению сборщика мусора в ответ на спрос на память. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Попробуйте принуждать к типу |