Как сохранить пользователь входить в app life?
Вопрос
У меня проблемы с проблемой, чтобы пользователь войти в систему для всего моего срока службы приложения, «Войти» находится на основной активности, когда начать другое действие, я все еще в системе, и я могу загрузить данные в QuickBlox, ноПосле того, как я начну другой активность, а затем снова запустите активию, которую я загрузил данные в QuickBlox, я получаю ошибку при попытке загрузки данных: «Требуется токен» ...
Редактировать:
QBSettings.getInstance().fastConfigInit(String.valueOf(APP_ID), AUTH_KEY, AUTH_SECRET);
QBUser user = new QBUser("login", "password");
QBAuth.createSession(user, this, QBQueries.SIGN_IN);
. Решение
Я думаю, что это еще одна проблема
Требуется токен"означает, что вы не создали сеанс и пытаясь выполнить другое запрос
Вы должны правильно создать сеанс первым
QBAuth.createSession(new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
if (result.isSuccess()) {
// do other requests here
//
} else {
handleErrors(result);
}
}
});
.
Если это не проблема для вас - пожалуйста, предоставьте больше кода в вашем вопросе
<Сильные> UPD
1) Попробуйте проверить токен для NULL
try {
String token = BaseService.getBaseService().getToken();
if(token == null){
// recreate session here
}
} catch (BaseServiceException e) {
e.printStackTrace();
}
. Другие советы
Я не уверен, как использовать этот API, вы используете здесь, но если вы хотите альтернативное предложение, я всегда использовал SharedPreferences
для сохранения сеансов пользователей.
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = settings.edit();
editor.putString("username", username); // Save the username with tag "username"
editor.putString("password", password); // Save the password with tag "password"
editor.commit();
.
и чтобы получить информацию о пользователе:
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
u = settings.getString("username", null);
p = settings.getString("password", null);
if(u == null && p == null) {...} // No saved user session, have user sign in
else {...} // User already logged in, go to main screen
.