Как сбросить конфигурацию светодиодов до исходных настроек - PullRequest
1 голос
/ 03 декабря 2009

У меня есть простое приложение BlackBerry, которое меняет настройки светодиодов (цвет, мигание, рисунок). Моя текущая среда тестирования состоит из живого Blackberry Bold (9000), и я столкнулся с проблемой, которую я не знаю, как действовать.

Предположим, что моя текущая настройка Blackberry (с точки зрения светодиодов) не должна мигать, если нет пропущенного вызова, нового сообщения (из всех вариантов). Программа, которую я написал, изменит светодиод, что нормально, но проблема заключается в закрытии программы. Закрытие программы вызывает диалоговое окно сохранения / отмены / отмены. Пока это не проблема, так как я только тестирую приложение, текущая проблема в том, что даже если вы отмените сделанные изменения, индикатор продолжит мигать. Я продемонстрировал программу другу, и она продолжала мигать, я также заметил, что, когда я получил новое сообщение, и индикатор меняется на красный и продолжает мигать (вместо того, чтобы быть Зеленым, последний цвет, который я показал в демо).

Как мне вернуть светодиод в предыдущее состояние при выходе из программы? Должен ли я скопировать существующие настройки (например, мигать или не мигать, когда сеть доступна), а затем при выходе сбросить сохраненные значения по умолчанию? Или есть лучший способ сброса светодиода?

Код довольно прост; вид:

public HomeScreen(boolean error) {
    redLED = new CustomButtonField("RED", Color.RED, Color.BLACK, Color.BLACK,
            Color.WHITE, Field.FOCUSABLE);
    add(redLED);
    blueLED = new CustomButtonField("BLUE", Color.RED, Color.BLACK, Color.BLACK,
            Color.WHITE, Field.FOCUSABLE);
    add(blueLED);
    whiteLED = new CustomButtonField("WHITE", Color.RED, Color.BLACK, Color.BLACK,
            Color.WHITE, Field.FOCUSABLE);
    add(whiteLED);
    greenLED = new CustomButtonField("GREEN", Color.RED, Color.BLACK, Color.BLACK,
            Color.WHITE, Field.FOCUSABLE);
    add(greenLED);
    redLED.setChangeListener(this);
    blueLED.setChangeListener(this);
    whiteLED.setChangeListener(this);
    greenLED.setChangeListener(this);
}

public HomeScreen(long arg0)
{
    super(arg0);
    // TODO Auto-generated constructor stub
}

public void fieldChanged(Field field, int context)
{           

        LED.setState(LED.LED_TYPE_STATUS, LED.STATE_BLINKING);

        if(field == redLED) {
            LED.setColorConfiguration(500,5000,Color.RED);
        }
        if(field == blueLED) {
            LED.setColorConfiguration(500,5000,Color.BLUE);
        }
        if(field == whiteLED) {
            LED.setColorConfiguration(500,5000,Color.WHITE);
        }
        if(field == greenLED) {
            LED.setColorConfiguration(500,5000,Color.GREEN);
        }

}

1 Ответ

2 голосов
/ 03 декабря 2009

Чтобы избавиться от диалогового окна сохранения / отмены / отмены при выходе из экрана, необходимо переопределить метод onSavePrompt () на экране. Вы также можете поместить сюда некоторый код, который вы хотели бы выполнить, когда пользователь покидает экран. Например, вы можете попробовать:

protected boolean onSavePrompt() {
    LED.setState(LED.STATE_OFF);
    return true;
}
...