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().