什么时候调用Context.getSystemService?

时间:2015-01-26 09:05:51

标签: android

我写了这样的代码:

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

它将在Application的onCreate函数中运行。但在某些Android手机中,它会在AudioManager的构造函数中崩溃。我发现其他人有这个问题,他说应该在onCreate内调用,这就是我所做的。

所以我的问题是什么时候调用getSystemService?或者我对它的使用是完全错误的?

logcat的: enter image description here

1 个答案:

答案 0 :(得分:0)

您只能在Context或之后的组件生命周期中调用onCreate()方法。

您发布的堆栈跟踪显示您正在getSystemService()中调用ApkDownloadInfoDataManager.<init>,即构造函数或成员变量初始化。假设ApkDownloadInfoDataManager是一个Context并且你正在调用一个方法,那就太早了。导致此问题的其他原因包括无效的Context,例如使用new实例化的问题。