Как сохранить пользовательское состояние в Android в моем случае - PullRequest
0 голосов
/ 13 сентября 2011

Я задаю этот вопрос, потому что я хочу быть уверен, что это лучший способ сохранить состояние пользователя "вошел в систему" / "вышел из системы" в моем приложении для Android.

Вот что я делаю. В моем приложении я подключаюсь к серверу, отправляю ему имя пользователя и пароль и, если все в порядке, возвращает мне ОК Итак, теперь я хочу иметь возможность сохранять пользователя, вошедшего в систему, по всему моему приложению, потому что мне нужно изменить содержимое, зависит от того, вошел ли пользователь в систему или нет.

И еще: мне нужно сохранить состояние входа пользователя в систему, поэтому в следующий раз, когда он запустит приложение, он автоматически войдет в систему.

Какие-нибудь предложения или идеи, которые являются лучшим способом сделать это?

Я провел небольшое исследование в Интернете и нашел несколько способов сделать это:

  1. MyApplication класс, который расширяет android.app.Application
  2. SharedPreference
  3. Или, может быть, SQLite

Ответы [ 5 ]

1 голос
/ 13 сентября 2011

SharedPreference - лучший вариант для доступа к одному значению с точки зрения времени, которое, по моему мнению, является истинным по сравнению с sql lite.

1 голос
/ 13 сентября 2011

Проблема с сохранением состояния на устройстве (с использованием SharedPreferences или SQLite) заключается в том, что пользователь может манипулировать им.Поэтому, если вы просто храните «isLoggedIn» в вашей базе данных SQLite, этой записью можно манипулировать , используя dpms (например).

Так что, если вам нужно сохранить состояние, вы должны использоватьApplication -класс (этим тоже можно манипулировать, но это сложнее).Если пользователь закрывает приложение, вы уничтожаете переменную состояния, поэтому ему необходимо выполнить вход при следующем открытии приложения.

Для удобства использования вы можете сохранить имя пользователя и (если пользователь этого хочет)пароль.

Кроме того, если у вас есть веб-сервис, который вы используете для проверки правильности регистрационных данных пользователей, почему бы вам не использовать, например, OAuth для аутентификацииПользователь на сервере и доставить контент с него?Это в основном сделало бы ваше приложение чистым «клиентом».

1 голос
/ 13 сентября 2011

ваш вариант SharedPreference является идеальным в этом состоянии, так как вам нужно хранить только логические значения, и вы будете часто, если в вашем приложении, изменять контент.

1 голос
/ 13 сентября 2011

Может быть много причин, когда ваше приложение теряет фокус, например нажатие кнопки «Домой» на входящий вызов и т. Д., Но независимо от того, что произойдет, ваш onPause метод текущего Activity вызывается, поэтому вы должны…

  1. Переопределение onPause метод каждого действия
  2. Использование SharedPreference для сохранения состояния приложения
1 голос
/ 13 сентября 2011

Я использую статические классы или SharedPreference - это легко и работает. SQLite это не хороший способ (на мой взгляд)

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