Comment obtenir contexte dans android classe de Service

Je reçois le message d'erreur suivant lorsque j'essaie de lire un fichier XML à partir de la mémoire et dans un objet. Semble comme problème à l'obtention du Contexte. Quelqu'un peut me dire quel est le problème avec mon code?

Code:

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.<init>(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
Avez-vous essayé IntentService. Il est beaucoup plus facile à manipuler. Btw, le Service s'étend Contexte.
mais est-ce la classe de lire le fichier à partir de la mémoire?

OriginalL'auteur user918197 | 2011-10-01