2015-01-26 2 views
-1

Я пишу код, как это:Какое время для вызова Context.getSystemService?

mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); 

Он будет работать в onCreate функции приложения. Но на некоторых телефонах Android он будет разбит в функции построения AudioManager. Я нашел, что у кого-то была эта проблема, он сказал, что ее следует называть в пределах onCreate, вот что я делаю точно.

Итак, мой вопрос в том, какое время можно назвать getSystemService? Или мое использование этого совершенно неверно?

Logcat: enter image description here

+0

'onCreate (...)' правильное место для вызова, но вы должны проверить свой 'context! = Null' –

+0

@MD У меня возникла авария в функции построения AudioManager, поэтому контекст не должен быть нулевым. – zzy

+0

ohhhh тогда вы должны опубликовать свой логарифм. –

ответ

0

Вы можете вызвать только Context методы в onCreate() или в конце жизненного цикла компонента.

В стеке, которое вы указали, вы указываете, что вы вызываете getSystemService() в ApkDownloadInfoDataManager.<init>. Инициализация конструктора или члена. Слишком рано, предполагая, что ApkDownloadInfoDataManager есть -Context, и вы вызываете метод на нем. Другие причины проблемы включают недопустимый Context, такой как экземпляр с new.

Смежные вопросы