Ich versuche, einen Ton von R.raw zu spielen. in einem Thread/Runable Aber ich kann das nicht zum laufen bringen.Kontext in einem Runnable
new Runnable(){ public void run() { //this is giving me a NullPointerException, because getBaseContext is null MediaPlayer mp = MediaPlayer.create(getBaseContext(), R.raw.soundfile); while (true) { if (something) play something } }
Wie kann ich den echten Kontext innerhalb der Run-Methode erhalten? Es ist null, egal was ich versuche. Oder gibt es einen besseren Weg, dies zu tun?
Ich habe einen Handler und das zusätzliche Runnable. Aber wenn ich auf diese zusätzliche Runnable zugreifen möchte, muss ich es als eine Klassenvariable deklarieren und so gibt es keinen Kontext und getBaseContext ist null – oggy
Warum gibt es keinen Kontext? Sie können es in Ihrem onCreate oder direkt vor dem Start Ihres Threads speichern: final Context myContext = ...; oder erweitern Sie Ihre Handler-Intializer wie YourHandler (Kontext c) {mGlobalContext = c} ... –
das ist, was ich versuche herauszufinden. Wenn ich eine Klassenvariable Context c deklariere; und mache c = getBaseContext(); in der OnCreate-Methode kann ich es in der OnCreate-Methode ausdrucken und es gibt mir etwas. Wenn ich den Kontext in der Runnable drucke, gibt es mir null, egal was – oggy