Как создать объект сеанса в приложении - PullRequest
3 голосов
/ 12 сентября 2011

В моем приложении я хочу создать сеанс для входа и выхода из системы.

У меня нет ни малейшего представления, как работать с сеансом.Кто-нибудь, помогите мне, приведя несколько примеров.

Ответы [ 2 ]

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

Я думаю, что объект сеанса должен быть статическим объектом, объявленным и инициализированным при запуске приложения.Я столкнулся с этой проблемой и решил поместить свой объект сеанса в класс utils, который содержит методы, используемые всеми действиями в моем приложении.

Вот краткий пример:

  1. создайте класс для утилит, который будет содержать объект сеанса, Session - это класс, с помощью которого вы реализуете свой объект сеанса.Он может содержать, например, userId, userName и т. Д.:

    public class Utils {  
        public static Session mySessionObject = null;
    }
    
  2. При нажатии кнопки входа в систему инициализировать объект сеанса:

    login.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Utils.mySessionObject = new Session();
           //some extra initalization, for example setting userId
        }
    });
    

Выйдя из системы, вы можете уничтожить объект сеанса.

Здесь - это ссылка, рассказывающая больше о сеансах.

0 голосов
/ 28 марта 2012

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

public class Session {  

    @SuppressWarnings("unused")
    private GoogleAnalyticsTracker mGoogleAnalyticsTracker = null;

    private static Session sInstance               = null;

    private Session(Context pContext) {

        mGoogleAnalyticsTracker = GoogleAnalyticsTracker.getInstance();
        mGoogleAnalyticsTracker.startNewSession(pContext.getString(R.string.google_analytics_web_property_id), 
                                                pContext.getResources().getInteger(R.integer.google_analytics_tracking_time_in_seconds),
                                                pContext.getApplicationContext());
    }

    public static void init(Context pContext) {
        sInstance = new Session(pContext);
    }

    public static Session getInstance() {
        return sInstance;
    }
}

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

Session.init(this);

Например, я использую его для инициализации трекера Google Analytics, режима разработки и т. Д.

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