Class ShadowLegacyMessage

java.lang.Object
org.robolectric.shadows.ShadowMessage
org.robolectric.shadows.ShadowLegacyMessage

@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.

  • Constructor Details

  • Method Details

    • recycleUnchecked

      @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.
      Specified by:
      recycleUnchecked in class ShadowMessage
    • recycle

      @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.
    • setScheduledRunnable

      public void setScheduledRunnable​(Runnable r)
      Description copied from class: 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.
      Specified by:
      setScheduledRunnable in class ShadowMessage
      Parameters:
      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.

    • isInUse

      @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".

      Returns:
      true if the message is currently "in use", false otherwise.
    • getNext

      public Message getNext()
      Description copied from class: ShadowMessage
      Convenience method to provide getter access to the private field Message.next.

      Only supported in LooperMode.Mode.LEGACY

      Specified by:
      getNext in class ShadowMessage
      Returns:
      The next message in the current message chain.
      See Also:
      ShadowMessage.setNext(Message)
    • setNext

      public void setNext​(Message next)
      Description copied from class: ShadowMessage
      Convenience method to provide setter access to the private field Message.next.

      Only supported in LooperMode.Mode.LEGACY

      Specified by:
      setNext in class ShadowMessage
      Parameters:
      next - the new next message for the current message.
      See Also:
      ShadowMessage.getNext()