我將配置保存爲SharedPreferences
並將其加載到擴展Services類中。無法實例化服務> java.lang.NullPointerException
但當我嘗試獲取配置的值出現錯誤,錯誤,如:
無法實例化服務kr.co.composer.callrecord.recorder.CallRecordService:顯示java.lang.NullPointerException
在行:
final SharedPreferences mSharedPreference= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
在佈局Configuration
我保存的EditText:
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
serverUrl.setText(prefs.getString("autoSave", ""));
serverUrl.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count)
{
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after)
{
}
@Override
public void afterTextChanged(Editable s)
{
prefs.edit().putString("autoSave", s.toString()).commit();
}
});
而在其他類,我想這個代碼來得到這個值:
public class CallRecordService extends Service {
final SharedPreferences mSharedPreference= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
@Override
public void onCreate() {
serverURL =(mSharedPreference.getString("autoSave", ""));
}
}
移動的'mSharedPreference'初始化裏面'的onCreate()',並刪除了'final'修改。 –
看起來你的上下文是空的 –
謝謝@MikeM。你的答案正在起作用。請添加回答接受你的回答。謝謝。 – vanloc