Получаю Null , когда в конструкторе передаю this

247
30 сентября 2017, 20:14
public class SplashScreen extends AppCompatActivity {
    static MediaPlayer mediaPlayer;
     public SplashScreen(){
         mediaPlayer = MediaPlayer.create(this, R.raw.acdc);
         mediaPlayer.start();
     }
}

на первой строке конструктора получаю Null , с сообщением о том, что невозможно создать экземпляр класса. Я так полагаю, что в момент отработки конструктора сам класс SplashScreen не полностью готов , еще не создался, чтобы передать себя .После чего он будет готов?

Answer 1

Краткий ответ: в методе onCreate.

Обычно пустая и готовая ко всему активити выглядит примерно так:

public class ExampleActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_example);
        // Вот здесь можно начинать творить
    }
}

UPD: Только сейчас заметил. У Вас объявлен static MediaPlayer mediaPlayer;, не стоит так делать, лучше объявите медиа плеер как обычное поле класса private MediaPlayer mediaPlayer;. Если Вы хотите, чтобы Ваш медиа плеер был доступен дольше, чем живёт Ваша активити, воспользуйтесь сервисом.

READ ALSO
Log4j2 не работает после деплоя tomcat 8

Log4j2 не работает после деплоя tomcat 8

Ситуация следующая: Для логирования использую log4j2 в связке с slf4jПроект деплою на tomcat8

331
Сохранение звука с google translate

Сохранение звука с google translate

В гугла есть апи для работы с переводчиком (https://translategoogle

247
Как изменить ресурсы класса

Как изменить ресурсы класса

У меня есть настройки в виде txt файла, этот txt файл будет находится в jar архиве

239
Критическая ошибка Android 7.0

Критическая ошибка Android 7.0

ЗдравствуйтеСегодня получил отчет от Firebase Crash Reporting и это уже второй такой отчет

260