SoftReference Kelas

Definisi

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

[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
Warisan
Atribut

Keterangan

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

Misalkan pengumpul sampah menentukan pada titik waktu tertentu bahwa objek dapat dijangkau dengan lembut. Pada saat itu dapat memilih untuk menghapus secara atomik semua referensi lunak ke objek tersebut dan semua referensi lunak ke objek lain yang dapat dijangkau dengan lembut dari mana objek tersebut dapat dijangkau melalui rantai referensi yang kuat. Pada saat yang sama atau di lain waktu akan mengantrekan referensi lunak yang baru dibersihkan yang terdaftar dengan antrean referensi.

Semua referensi lunak ke objek yang dapat dijangkau dengan lembut dijamin telah dibersihkan sebelum komputer virtual melempar OutOfMemoryError. Jika tidak, tidak ada batasan yang ditempatkan pada saat referensi lunak akan dihapus atau urutan di mana sekumpulan referensi tersebut ke objek yang berbeda akan dihapus. Implementasi komputer virtual, bagaimanapun, didorong untuk bias terhadap membersihkan referensi lunak yang baru dibuat atau yang baru-baru ini digunakan.

<h3>Hindari Referensi Lunak untuk Penembolokan</h3> Dalam praktiknya, referensi lunak tidak efisien untuk penembolokan. Runtime tidak memiliki informasi yang cukup tentang referensi mana yang akan dihapus dan mana yang harus disimpan. Paling fatal, tidak tahu apa yang harus dilakukan ketika diberikan pilihan antara membersihkan referensi lunak dan menumbuhkan tumpukan.

Kurangnya informasi tentang nilai untuk aplikasi Anda dari setiap referensi membatasi kegunaan referensi lunak. Referensi yang dibersihkan terlalu dini menyebabkan pekerjaan yang tidak perlu; yang dibersihkan terlalu terlambat membuang memori.

Sebagian besar aplikasi harus menggunakan android.util.LruCache alih-alih referensi lunak. LruCache memiliki kebijakan pengeluaran yang efektif dan memungkinkan pengguna menyetel berapa banyak memori yang dialokasikan.

Ditambahkan dalam 1.2.

Java dokumentasi untuk java.lang.ref.SoftReference.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
SoftReference(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

SoftReference(Object, ReferenceQueue)

Membuat referensi lunak baru yang mengacu pada objek yang diberikan dan terdaftar dengan antrean yang diberikan.

SoftReference(Object)

Membuat referensi lunak baru yang mengacu pada objek yang diberikan.

Properti

Nama Deskripsi
Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
IsEnqueued

Menguji apakah objek referensi ini berada dalam antrean terkait, jika ada.

(Diperoleh dari Reference)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
JniPeerMembers

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
Clear()

Menghapus objek referensi ini.

(Diperoleh dari Reference)
Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
Enqueue()

Menambahkan objek referensi ini ke antrean tempat objek didaftarkan, jika ada.

(Diperoleh dari Reference)
Equals(Object)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
Get()

Mengembalikan referensi objek referensi ini.

(Diperoleh dari Reference)
GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
RefersTo(Object)

Menguji apakah referensi objek referensi ini adalah obj.

(Diperoleh dari Reference)
SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

(Diperoleh dari JavaObject)

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

Objek referensi lunak, yang dibersihkan atas kebijaksanaan pengumpul sampah sebagai respons terhadap permintaan memori.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk