android获取上下文对象,如何在Android服务类中获取上下文

当我尝试从内存中读取

XML文件并进入对象时,我收到以下错误.看起来像获取上下文的问题.谁能告诉我我的代码有什么问题?

码:

public class WifiScanning extends Service {

private static final String TAG = "WifiScanning";

private Timer timer;

public int refreshRate;

public WifiScanning() {

super();

Configuration config = new Configuration();

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser sp;

XMLReader xr = null;

DataHandler dataHandler = null;

try {

sp = spf.newSAXParser();

xr = sp.getXMLReader();

dataHandler = new DataHandler();

xr.setContentHandler(dataHandler);

xr.parse(new InputSource(this.openFileInput("config.xml")));

} catch (ParserConfigurationException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SAXException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

config = dataHandler.getConfig();

refreshRate = Integer.parseInt(config.getMapRefreshRate());

// TODO Auto-generated constructor stub

}

private TimerTask updateTask = new TimerTask() {

@Override

public void run() {

Log.i(TAG, "Timer task doing work");

}

};

@Override

public IBinder onBind(Intent intent) {

// TODO Auto-generated method stub

return null;

}

@Override

public void onCreate() {

super.onCreate();

Log.i(TAG, "Service creating");

timer = new Timer("TweetCollectorTimer");

Log.i(TAG, "Refresh Rate: "+ String.valueOf(refreshRate));

timer.schedule(updateTask, 0, 3000L);

}

@Override

public void onDestroy() {

super.onDestroy();

Log.i(TAG, "Service destroying");

if (timer != null){

timer.cancel();

timer.purge();

timer = null;

}

}

public void onStop() {

Log.i(TAG, "Service destroying");

if (timer != null){

timer.cancel();

timer.purge();

timer = null;

}

}

}

logcat的:

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): java.lang.RuntimeException: Unable to instantiate service android.wps.WifiScanning: java.lang.NullPointerException

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2764)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.app.ActivityThread.access$3200(ActivityThread.java:119)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1917)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.os.Handler.dispatchMessage(Handler.java:99)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.os.Looper.loop(Looper.java:123)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.app.ActivityThread.main(ActivityThread.java:4363)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at java.lang.reflect.Method.invokeNative(Native Method)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at java.lang.reflect.Method.invoke(Method.java:521)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at dalvik.system.NativeStart.main(Native Method)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): Caused by: java.lang.NullPointerException

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.content.ContextWrapper.openFileInput(ContextWrapper.java:152)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.wps.WifiScanning.(WifiScanning.java:52)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at java.lang.Class.newInstanceImpl(Native Method)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at java.lang.Class.newInstance(Class.java:1479)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2761)

10-01 11:08:49.804: ERROR/AndroidRuntime(21514): ... 10 more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值