summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2018-02-23 21:21:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-02-23 21:21:20 +0000
commit1dcd64578992a650f3134be2178694ce0b6ee9d8 (patch)
tree23dc811cb5d33f5250472bfe86cf228abe0cae06 /core/java
parent7509bb3f97feb1d15d4472b7112e6485ea453ee0 (diff)
parent9f35ca996432e960b77eb194975e2086d7c18aff (diff)
Merge "Use PooledLambda in print code"
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/Handler.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/core/java/android/os/Handler.java b/core/java/android/os/Handler.java
index fc88e9006639..0417ded829e8 100644
--- a/core/java/android/os/Handler.java
+++ b/core/java/android/os/Handler.java
@@ -683,6 +683,23 @@ public class Handler {
return enqueueMessage(queue, msg, 0);
}
+ /**
+ * Executes the message synchronously if called on the same thread this handler corresponds to,
+ * or {@link #sendMessage pushes it to the queue} otherwise
+ *
+ * @return Returns true if the message was successfully ran or placed in to the
+ * message queue. Returns false on failure, usually because the
+ * looper processing the message queue is exiting.
+ * @hide
+ */
+ public final boolean executeOrSendMessage(Message msg) {
+ if (mLooper == Looper.myLooper()) {
+ dispatchMessage(msg);
+ return true;
+ }
+ return sendMessage(msg);
+ }
+
private boolean enqueueMessage(MessageQueue queue, Message msg, long uptimeMillis) {
msg.target = this;
if (mAsynchronous) {