===== Runnables and you ===== There's nothing special about a Runnable. It's doesn't have anything to do with threads. All it is is an interface, that's it: public class MyRunnable implements Runnable { public void run(){ Log.v("MyRunnable running"); } } The interface takes no parameters and returns no parameters. When started it will run whatever magical stuff you put in the ''run'' method. Besides the run method you can have a constructor if the spirit moves you. You can create a runnable so you have something to send on a separate thread. You don't need a runnable to do it, it's just standard convention everybody seems to have agreed upon. Here's a nice friendly runnable to play with: public class MyRunnable implements Runnable { public void run(){ Log.v("test","MyRunnable running"); } } 3 ways to create an instance of this runnable: * Define the class as above and create an instance: ''Runnable myRunnable = new MyRunnable'' * Skip naming the class but still define it: Runnable myRunnable = new Runnable(){ public void run(){ Log.v("Runnable running"); } } * do "the lambda": ''Runnable myRunnable = () -> { Log.v("Lambda Runnable running"); };'' Once you have a runnable or really any function wrapped up all pretty like this you can create a new thread to run it: Thread thread = new Thread(myRunnable); thread.start(); //Borrowed and reworded from [[http://tutorials.jenkov.com/java-concurrency/creating-and-starting-threads.html|this excellent resource]].//