@Implements(value=android.os.Message.class, isInAndroidSdk=false) public class ShadowLegacyMessage extends ShadowMessage
The shadow Message
for LooperMode.Mode.LEGACY
.
In LooperMode.Mode.LEGACY
, each Message is associated with a Runnable posted to the Scheduler
.
ShadowLooper, ShadowLegacyMessageQueue
ShadowMessage.Picker
Constructor and Description |
---|
ShadowLegacyMessage() |
Modifier and Type | Method and Description |
---|---|
Message |
getNext()
Convenience method to provide getter access to the private field
Message.next . |
protected boolean |
isInUse()
Convenience method to provide access to the private
Message.isInUse() method. |
protected void |
recycle()
Hook to unscheduled the callback when the message is recycled.
|
void |
recycleUnchecked()
Hook to unscheduled the callback when the message is recycled.
|
void |
setNext(Message next)
Convenience method to provide setter access to the private field
Message.next . |
void |
setScheduledRunnable(Runnable r)
Stores the
Runnable instance that has been scheduled to invoke this message. |
reset
@HiddenApi @Implementation(minSdk=21) public void recycleUnchecked()
Hook to unscheduled the callback when the message is recycled. Invokes unschedule()
and then calls through to the package private method Message.recycleUnchecked()
on the real object.
recycleUnchecked
in class ShadowMessage
@Implementation(maxSdk=20) protected void recycle()
Hook to unscheduled the callback when the message is recycled. Invokes unschedule()
and then calls through to Message.recycle()
on the real object.
public void setScheduledRunnable(Runnable r)
ShadowMessage
Stores the Runnable
instance that has been scheduled to invoke this message. This is called when the message is enqueued by ShadowLegacyMessageQueue.enqueueMessage(android.os.Message, long)
and is used when the message is recycled to ensure that the correct Runnable
instance is removed from the associated scheduler.
setScheduledRunnable
in class ShadowMessage
r
- the Runnable
instance that is scheduled to trigger this message. #if ($api >= 21) * @see #recycleUnchecked() #else * @see #recycle() #end
Only supported in LooperMode.Mode.LEGACY
.
@Implementation protected boolean isInUse()
Convenience method to provide access to the private Message.isInUse()
method. Note that the definition of “in use” changed with API 21:
In API 19, a message was only considered “in use” during its dispatch. In API 21, the message is considered “in use” from the time it is enqueued until the time that it is freshly obtained via a call to Message.obtain()
. This means that in API 21 messages that are in the recycled pool will still be marked as “in use”.
true
if the message is currently “in use”, false
otherwise.public Message getNext()
ShadowMessage
Convenience method to provide getter access to the private field Message.next
.
Only supported in LooperMode.Mode.LEGACY
getNext
in class ShadowMessage
ShadowMessage.setNext(Message)
public void setNext(Message next)
ShadowMessage
Convenience method to provide setter access to the private field Message.next
.
Only supported in LooperMode.Mode.LEGACY
setNext
in class ShadowMessage
next
- the new next message for the current message.ShadowMessage.getNext()