diff options
author | Trevor Johns <trevorjohns@google.com> | 2013-10-09 06:36:26 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-10-09 06:36:27 +0000 |
commit | d313721265d1f2b98c134a55e2f57ca723b9e538 (patch) | |
tree | b7ce1e0677b72b04675f28bb8fcacf8332ea7945 /common | |
parent | a0839ca578c5fd29407e5325933e4d17474319ba (diff) | |
parent | b792e9de1632ad2936868e8eb0f2d083936c667a (diff) | |
download | android-d313721265d1f2b98c134a55e2f57ca723b9e538.tar.gz |
Merge "Fixed LogView so it'll work when a log statement is called from a non-UI thread." into developers-dev
Diffstat (limited to 'common')
-rw-r--r-- | common/src/java/com/example/android/common/logger/LogView.java | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/common/src/java/com/example/android/common/logger/LogView.java b/common/src/java/com/example/android/common/logger/LogView.java index 234263d1..c01542b9 100644 --- a/common/src/java/com/example/android/common/logger/LogView.java +++ b/common/src/java/com/example/android/common/logger/LogView.java @@ -15,6 +15,7 @@ */ package com.example.android.common.logger; +import android.app.Activity; import android.content.Context; import android.util.*; import android.widget.TextView; @@ -45,6 +46,8 @@ public class LogView extends TextView implements LogNode { */ @Override public void println(int priority, String tag, String msg, Throwable tr) { + + String priorityStr = null; // For the purposes of this View, we want to print the priority as readable text. @@ -79,7 +82,7 @@ public class LogView extends TextView implements LogNode { // Take the priority, tag, message, and exception, and concatenate as necessary // into one usable line of text. - StringBuilder outputBuilder = new StringBuilder(); + final StringBuilder outputBuilder = new StringBuilder(); String delimiter = "\t"; appendIfNotNull(outputBuilder, priorityStr, delimiter); @@ -87,8 +90,15 @@ public class LogView extends TextView implements LogNode { appendIfNotNull(outputBuilder, msg, delimiter); appendIfNotNull(outputBuilder, exceptionStr, delimiter); - // Actually display the text we just generated within the LogView. - appendToLog(outputBuilder.toString()); + // In case this was originally called from an AsyncTask or some other off-UI thread, + // make sure the update occurs within the UI thread. + ((Activity) getContext()).runOnUiThread( (new Thread(new Runnable() { + @Override + public void run() { + // Display the text we just generated within the LogView. + appendToLog(outputBuilder.toString()); + } + }))); if (mNext != null) { mNext.println(priority, tag, msg, tr); |