public class SoftReference<T> extends Reference<T>
The lack of information on the value to your application of each reference limits the usefulness of soft references. References that are cleared too early cause unnecessary work; those that are cleared too late waste memory.
Most applications should use an android.util.LruCache instead of
soft references. LruCache has an effective eviction policy and lets the user
tune how much memory is allotted.
obj that is
softly-reachable, the following happens:
refs of references is determined. refs contains
the following elements:
obj.obj is
strongly reachable.refs are atomically cleared.refs will be enqueued with their corresponding reference queues, if
any.SoftReferences pointing to softly reachable objects will be cleared before
the runtime throws an OutOfMemoryError.
Unlike a WeakReference, a SoftReference will not be
cleared and enqueued until the runtime must reclaim memory to satisfy an
allocation.
pendingNext| Constructor and Description |
|---|
SoftReference(T r)
Constructs a new soft reference to the given referent.
|
SoftReference(T r,
ReferenceQueue<? super T> q)
Constructs a new soft reference to the given referent.
|
public SoftReference(T r)
r - the referent to trackpublic SoftReference(T r, ReferenceQueue<? super T> q)
r - the referent to trackq - the queue to register to the reference object with. A null value
results in a weak reference that is not associated with any
queue.