to top
Android APIs
public class

ReferenceQueue

extends Object
java.lang.Object
   ↳ java.lang.ref.ReferenceQueue<T>

Class Overview

The ReferenceQueue is the container on which reference objects are enqueued when the garbage collector detects the reachability type specified for the referent.

Summary

Public Constructors
ReferenceQueue()
Constructs a new instance of this class.
Public Methods
synchronized Reference<? extends T> poll()
Returns the next available reference from the queue, removing it in the process.
Reference<? extends T> remove()
Returns the next available reference from the queue, removing it in the process.
synchronized Reference<? extends T> remove(long timeoutMillis)
Returns the next available reference from the queue, removing it in the process.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public ReferenceQueue ()

Since: API Level 1

Constructs a new instance of this class.

Public Methods

public synchronized Reference<? extends T> poll ()

Since: API Level 1

Returns the next available reference from the queue, removing it in the process. Does not wait for a reference to become available.

Returns
  • the next available reference, or null if no reference is immediately available

public Reference<? extends T> remove ()

Since: API Level 1

Returns the next available reference from the queue, removing it in the process. Waits indefinitely for a reference to become available.

Throws
InterruptedException if the blocking call was interrupted

public synchronized Reference<? extends T> remove (long timeoutMillis)

Since: API Level 1

Returns the next available reference from the queue, removing it in the process. Waits for a reference to become available or the given timeout period to elapse, whichever happens first.

Parameters
timeoutMillis maximum time to spend waiting for a reference object to become available. A value of 0 results in the method waiting indefinitely.
Returns
  • the next available reference, or null if no reference becomes available within the timeout period
Throws
IllegalArgumentException if timeoutMillis < 0.
InterruptedException if the blocking call was interrupted