У меня есть простое приложение 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);
}
}