2015-03-17 2 views
0

У меня возникли проблемы при доступе к shredPreferences из внутри IntentServiceэкранным SharedPreferences из разных IntentService

это ошибка я получаю:

java.lang.RuntimeException: Unable to instantiate service com.androidbook.btdt.hour6.QuizSettingsActivity$UploaderService: java.lang.NullPointerException 

NullPointer исключение возникает, когда

mGameSettings = getSharedPreferences(GAME_PREFERENCES,Context.MODE_PRIVATE); 

Это код:

public static class UploaderService extends IntentService{ 

String DEBUG_TAG = UploaderService.class.getSimpleName(); 

SharedPreferences mGameSettings; 



private UpLoadUserData upLoadUserData; 

/** 
* Creates an IntentService. Invoked by your subclass's constructor. 
* 
* @param name Used to name the worker thread, important only for debugging. 
*/ 
public UploaderService(String name) { 
    super(name); 
    mGameSettings = getSharedPreferences(GAME_PREFERENCES,Context.MODE_PRIVATE); 
} 

public UploaderService(){ 
    super(""); 
    mGameSettings = getSharedPreferences(GAME_PREFERENCES,Context.MODE_PRIVATE); 
} 

Это, как я начинаю IntentService:

Intent uploadService = new Intent(this,UploaderService.class); 
    startService(uploadService); 

ответ

1

Я думаю, что вам нужно сделать эту строку в функции StartService, а не конструктор. Я знаю, по крайней мере, для действий во время построения Контекст не полностью настроен, поэтому многие вызовы потерпят неудачу. Я считаю, что услуги одинаковы.

+0

На самом деле это будет 'onCreate()', после вызова 'super.onCreate()'. – CommonsWare

+0

Блех, ты прав. Может быть, мне стоит перестать отвечать на вопросы сегодня, я, очевидно, шаг медленнее, чем обычно :) –

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