Как я могу реализовать переменные сеанса в J2ME? - PullRequest
2 голосов
/ 18 февраля 2010

Можно ли использовать сессию в J2me? Я пытаюсь разработать приложение Blackberry. Я хочу получить некоторый текст из класса (страницы) и использовать в другом классе (странице). Может быть что-то вроде того, что мы делаем в app.net как:

Class1
{
    session("myVariable") = Textbox.Text;
}

//a new class
Class2
{
    TextBox2.Text = session("myVariable").toString();
}

Я буду очень признателен за любую помощь.

Ответы [ 2 ]

4 голосов
/ 18 февраля 2010

У вас может быть третий класс, где вы храните такие «глобальные» переменные. Вы можете сделать эти переменные общедоступными и статическими; хотя это может привести к тесно связанному коду.

public class GlobalVariables
{
    public static string MyVariable = "empty";
}

Тогда вы можете сделать ...

GlobalVariables.MyVariable = Textbox.Text;

... и ...

TextBox2.Text = GlobalVariables.MyVariable;

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

Еще один совет - использовать метод GlobalVariables для сброса всех статических значений до значений по умолчанию на случай, если пользователь захочет сбросить приложение из приложения. Кроме того, если это единственное место, где вы будете хранить все переменные для каждого сеанса, вы можете добавить сюда методы сохранения и загрузки RMS, чтобы хранить все это в одном месте.

Опять же, это не лучший способ сделать что-то ... но это просто.

2 голосов
/ 18 февраля 2010

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

Существует несколько способов.сделать это.Некоторые вещи, которые следует учитывать:

  • Вам необходимо сохранить данные сеанса (или, возможно, некоторые из них) между запусками вашего приложения?
  • Фиксированный набор переменных сеанса илиэто может варьироваться?
  • Все переменные являются «строковыми» или являются числовыми?

Простая реализация может быть экземпляром Hashtable в классе с открытымстатические методы для получения и установки переменных путем вызова методов put () и get () из Hashtable.

...