Context inside a Runnable Context inside a Runnable multithreading multithreading

Context inside a Runnable


You should also be able to get the this reference from the outer class by using MainActivity.this.


You should use getBaseContext. Instead, if this runnable is within an activity, you should store the context in a class variable like this:

public class MainActivity extends Activity {    private Context context;    public void onCreate( Bundle icicle ) {        context = this;        // More Code    }    // More code    new Runnable(){         public void run() {              MediaPlayer mp = MediaPlayer.create(context, R.raw.soundfile);              while (true) {                  if (something)                      play something              }          }    }}

Also you shouldn't have an infinite loop like that playing a sound over and over - there should be a sleep in there in order to prevent the sound from playing over and over in a small amount of time and overlapping the same sounds with each other.


I guess you need to create a Thread and call Thread.start().