Android: getSharedPreferences для сессии - PullRequest
0 голосов

Хорошо, проверьте этот исходный код:

public void checkSession() {
    SharedPreferences session = getSharedPreferences(PREFS_NAME, 1); 
    String getSession = session.getString("SESSION", null);
    Toast.makeText(this, getSession, Toast.LENGTH_SHORT).show();
    if(getSession.length() > 30) {
        Intent menu = new Intent(this, menu.class);
        startActivity(menu);
        finish();
    } 
    else 
    {   
    }
}

Проблема в том, что «новые пользователи» влюбляются.

Когда я отключаю функцию, запускаю приложение и авторизируюсь, код создает сессию. После этого, когда я выхожу и перезагружаю приложение - проблем нет. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 11 мая 2011

При первом запуске приложения, когда у вас нет значения, сохраненного в SharedPreference "SESSION", вы возвращаете значение null в качестве значения по умолчанию.Затем getSession (). Length приведет к исключению NullPointerException.

Вместо этого вы должны сделать следующее:

String getSession = session.getString("SESSION", "");
1 голос
/ 11 мая 2011

Если getSession равен нулю, я думаю, что Toast.makeText упадет. * Возможно, вы захотите изменить возврат по умолчанию на "" с нуля.getSession.length () не будет работать, если getSession также имеет значение null.

* Очевидно, что это не так - см. комментарий TofferJ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...