我正在尝试编写一项在 Gear Live 上获取心率的服务,遵循此处的问题从“传感器”Samsung Gear Live 获取心率
如果我把这部分
Log.d(TAG, "prepare to call getSystemService");
mSensorManager = ((SensorManager)getSystemService(SENSOR_SERVICE));
Log.d(TAG, "after calling getSystemService");
at onCreate()
一项活动,效果很好。但如果我将其转移到服务中,它会抛出 NPE。我尝试添加this.
在 `getSystemService 前面,没有帮助。任何提示,谢谢
我明白了,原因就在里面getSystemService
,有一个对此函数的调用:
@Override
public Object getSystemService(String name) {
return mBase.getSystemService(name);
}
其中有mBase
为空。这是一个Context
目的。所以我必须将启动服务的活动的上下文放入onCreate()
。代码如下:
public HeartRateMonitorService(Context context){
super();
mBaseConext = context;
}
@Override
public void onCreate() {
super.onCreate();
attachBaseContext(mBaseConext);
}
我不确定这是否是最佳解决方案,但它是一种解决方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)