Я пытаюсь воспроизвести звук с R.raw. внутри Thread/Runnable Но я не могу заставить это работать.Контекст внутри 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 } }
Как я могу получить реальный контекст внутри метода run? Это неважно, что бы я ни старался. Или есть лучший способ сделать это?
У меня есть обработчик и этот дополнительный Runnable. Но если я хочу получить доступ к этому дополнительному Runnable, мне нужно объявить его как переменную класса, и поэтому нет контекста, а getBaseContext имеет значение null – oggy
Почему нет контекста? Вы можете сохранить его в своем onCreate или прямо перед вашим началом: final Context myContext = ...; или расширить свой обработчик обработчика, такой как YourHandler (Context c) {mGlobalContext = c} ... –
Вот что я пытаюсь выяснить. Если я объявляю переменную класса Context c; и c = getBaseContext(); в методе onCreate я могу распечатать его в методе onCreate, и он дает мне что-то. Если я печатаю контекст в Runnable, он дает мне нуль, независимо от того, что – oggy