title: Can a Runnable return a value?
body: <p>Is it possible for a Runnable to return a value? I need to do some intensive work on an Editable and then return it back. Here is my mock code.</p>
  
  <pre><code>public class myEditText extends EditText {
  ...
  private Editable workOnEditable() {
      final Editable finalEdit = getText();
      Thread mThread = new Thread(new Runnable() {
          public void run() {
  
  
                //do work
  
                //Set Spannables to finalEdit
  
          }
       });
      mThread.start();
      return finalEdit;
  }
  ...
  }
  </code></pre>
  
  <p>So obviously my first problem is I'm trying to change finalEdit, but it has to be final in order to access it in and out of the thread, right? What's the correct way to do this?</p>