Я пытаюсь использовать SharedPreferences
в не activity
класса от onResume()
в деятельности, но я получаю NullPointerException на context
.SharedPreferences в не деятельности класса NullPointerException
По какой-то причине я не могу получить context
в onResume()
. Не уверен, что я что-то упустил, но любая помощь будет оценена.
onResume() в моей деятельности
@Override
protected void onResume() {
super.onResume();
// The activity has become visible (it is now "resumed").
// Check User's Access Token exists and hasn't expired.
AccountFunctions accountFunctions = new AccountFunctions();
if (!accountFunctions.validateUserToken(this)) {
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}
}
метод validateUserToken (контекст контекста) в AccountFunctions Класс
public Boolean validateUserToken(Context context) {
SharedPreferences sharedPref = context.getSharedPreferences(getString(R.string.user_file_key), Context.MODE_PRIVATE); // This is where the error is thrown
String accessToken = sharedPref.getString(getString(R.string.user_access_token), null);
DateTime expiryDate = new DateTime(sharedPref.getLong(getString(R.string.user_expires), 0));
if (accessToken == null || expiryDate.isBeforeNow()) {
return false;
} else {
return true;
}
}
Ошибка
java.lang.RuntimeException: невозможно возобновить активность {uk.co.itsstonbury.www.intouch.MainActivity}: java.lang.NullPointerException: попытка вызвать виртуальный метод ' android.content.Context android.content.Context.getApplicationContext()»на нулевой объект ссылка
Возможный дубликат [Как использовать SharedPreferences в Android хранить, получать и редактировать значения] (HTTP: // StackOverflow.com/questions/3624280/how-to-use-sharedpreferences-in-android-to-store-fetch-and-edit-values) – Chisko
Ваша проблема заключается в том, что 'AccountFunctions', как представляется, расширяет некоторые классы Context или Activity , и это действительно не должно. –
Я бы не стал считать это дубликатом связанного. Мой вопрос заключается в том, что проблема с контекстом решена путем ответа ниже. Не думайте, что это требует голосования. –