Существует ли стандартный способ обработки сеансов для приложений Android, где вход в систему происходит только один раз и в большинстве случаев он остается в автономном режиме, кроме синхронизации? (Для этого варианта использования мы определяем сеанс как запуск и выход приложения. Сессия не зависит от входа и выхода из системы)Как поддерживать сеансы для автономных приложений android
ответ
Вы можете использовать общие настройки приложений в Android для поддержки хранения сеансов, Здесь я делюсь полный класс PreferenceHandler я в основном использовать в приложения для Android,
public class PreferenceHelper {
SharedPreferences preferences;
Context context;
Editor editor;
public static final String PREFERENCES_NAME = "YourApplicationName";
public PreferenceHelper(Context context) {
preferences = context.getSharedPreferences(PREFERENCES_NAME,
Context.MODE_PRIVATE);
}
public void addPreference(String key, String value) {
editor = preferences.edit();
editor.putString(key, value);
editor.commit();
}
public void addPreference(String key, Set<String> values) {
editor = preferences.edit();
editor.putStringSet(key, values);
editor.commit();
}
public void addPreference(String key, int value) {
editor = preferences.edit();
editor.putInt(key, value);
editor.commit();
}
public void addPreference(String key, float value) {
editor = preferences.edit();
editor.putFloat(key, value);
editor.commit();
}
public void addPreference(String key, boolean value) {
editor = preferences.edit();
editor.putBoolean(key, value);
editor.commit();
}
public void addPreference(String key, long value) {
editor = preferences.edit();
editor.putLong(key, value);
editor.commit();
}
public void editPreference(String key, String value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public void editPreference(String key, Set<String> value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public void editPreference(String key, int value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public void editPreference(String key, float value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public void editPreference(String key, boolean value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public void editPreference(String key, long value) {
editor = preferences.edit();
if (preferences.contains(key)) {
editor.remove(key);
}
addPreference(key, value);
}
public String getStringValue(String key) {
String value = preferences.getString(key, "");
return value;
}
public Set<String> getValues(String key) {
Set<String> values = preferences.getStringSet(key, null);
return values;
}
public int getIntValue(String key) {
int value = preferences.getInt(key, -1);
return value;
}
public boolean getBooleanValue(String key) {
boolean value = preferences.getBoolean(key, false);
return value;
}
public float getFloatValue(String key) {
float value = preferences.getFloat(key, -1);
return value;
}
public Long getLongValue(String key) {
Long value = preferences.getLong(key, -1);
return value;
}
public void removeKey(String key) {
preferences.edit().remove(key);
preferences.edit().commit();
}
public void clearAllPreferences() {
preferences.edit().clear();
preferences.edit().commit();
}
}
Для вызова и использовать это в вашем приложении просто создать объект этого класса,
PreferenceHelper preferences=new PreferenceHelper(getApplicationContext());
и если вы используете сегменты или любому другому суб использовании раскладки этот метод,
PreferenceHelper preferences = new PreferenceHelper(getActivity().getApplicationContext());
Ниже приведен пример того, как я использую это как в моем требовании для входа
if (preferences.getBooleanValue("is_logged")) {
preferences
.addPreference("last_login", DateHelper.getCurrentDate());
startActivity(new Intent(this, MainActivity.class));
finish();
}
для установки значений в предпочтения Я использую этот метод при логине времени, в использовании методы Логина,
preferences.addPreference("is_logged", true);
preferences.addPreference("email", email);
preferences.addPreference("user_name", username);
preferences.addPreference("password", password);
preferences.addPreference("last_login",
DateHelper.getCurrentDate());
int uid = JsonHelper.getReturnID(result);
boolean is_admin, is_manager;
is_admin = JsonHelper.getBoolean(result, "is_admin");
is_manager = JsonHelper.getBoolean(result, "is_manager");
preferences.addPreference("is_admin", is_admin);
preferences.addPreference("is_manager", is_manager);
preferences.addPreference("uid", uid);
String phone, name;
phone = JsonHelper.getStringFromResult(result, "phone");
name = JsonHelper.getStringFromResult(result, "name");
preferences.addPreference("phone", phone);
preferences.addPreference("name", name);
startActivity(new Intent(StartingActivity.this,
MainActivity.class));
Надеется, что это будет решать ваш вопрос.
спасибо за ответ, был нужен, если есть стандартный способ создания идентификаторов сеансов на Android приложение, а затем синхронизирует его с сервером. – shanu
В настоящий момент в андроиде нет такого стандартного метода. Все, что вам нужно сделать, - это обработать ваш код вручную. –
- 1. Android: Интеграция двух автономных приложений
- 2. Создание автономных приложений python
- 3. Создание автономных приложений в JavaScript
- 4. Обратный вызов API RESTful для автономных приложений
- 5. Интеграция автономных приложений внутри codeigniter
- 6. Бизнес-правила для автономных мобильных приложений
- 7. 64-разрядная Java для небольших автономных приложений
- 8. Как поддерживать сеансы с кодом на C++?
- 9. Как поддерживать сеансы пользователей в DropWizard?
- 10. Коммуникации автономных приложений J2EE-Java
- 11. Разработка стабильных автономных приложений HTML5?
- 12. CAS SSO для веб-приложений и автономных приложений
- 13. Как начать программирование автономных приложений для OS X
- 14. Поддерживать состояние по возвращении в приложение для запуска приложений :: Android?
- 15. Настройка Absolutepath для автономных приложений для случая log4j2.xml
- 16. Идентификация автономных сервисов на Android
- 17. Почему invokeAndWait() предпочтительнее для апплетов, а не для автономных приложений?
- 18. android Как поддерживать сеанс
- 19. Ошибка «Недостаточно памяти» для автономных приложений Matlab - фрагментация памяти
- 20. Как поддерживать сеансы CakePHP через несколько запросов AJAX?
- 21. Google OAuth для автономных ошибок веб-приложений с disallowed_useragent
- 22. Использование magellan геопространственной библиотеки с искры Apache для автономных приложений
- 23. Компиляция PHP и MySQL для автономных окон или приложений linux
- 24. Использование хранилища баз данных для использования, отличного от автономных приложений
- 25. Как использовать Seed в Windows, Mac, Android для написания автономных приложений в JavaScript?
- 26. Рельсы с угловым 2 (для автономных веб-приложений)?
- 27. Как создать и поддерживать сеансы аутентификации на iPhone?
- 28. Как поддерживать сеансы пользователей в DropWizard 1.0.x
- 29. Как поддерживать объекты между сеансами приложений?
- 30. Как мне поддерживать сервер приложений Puma?
http://www.androidhive.info/2012/08/android-session-management-using-shared-preferences/ –