У меня есть простое приложение Blackberry, которое меняет настройки светодиодов (цвет, мигание, узор). Моя текущая среда тестирования состоит из живого Blackberry Bold (9000), и у меня возникла проблема, и я не уверен, как действовать дальше.Как сбросить конфигурацию светодиодов до исходных настроек
Предположим, что моя текущая настройка Blackberry (светодиодная мудрая) не должна мигать, если нет пропущенного вызова, нового сообщения (всех разновидностей). Программа, которую я написал, изменит светодиод, и это нормально, но проблема заключается в закрытии программы. При закрытии программы появляется диалоговое окно save/discard/cancel. На данный момент это не проблема, так как я только тестирую приложение, проблема в том, что даже если вы отмените сделанные изменения, свет продолжит мигать. Я продемонстрировал программу другу, и он продолжал мигать, я также заметил, что когда я получил новое сообщение, а свет изменился на красный и продолжал мигать (вместо того, чтобы быть зеленым, последний цвет, который я показал в демо).
Как сбросить светодиод до его предыдущего состояния при выходе из программы? Должен ли я копировать существующие настройки (например, мигать или не мигать, когда сеть доступна), а затем при возврате возврата к сохраненным значениям по умолчанию? Или есть лучший способ сброса светодиодов?
Код довольно прост; Вид:
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);
}
}
Делать это решает проблему сохранения диалог и не выключить светодиод, но можно ли сбросить светодиод сказать, вспышка, когда приходит или флэш-сообщение, когда я есть охват? Ну, это возможно. –
Если вы хотите, чтобы ваша программа продолжала работать в фоновом режиме после того, как все экраны выскочили из стека, вам нужно вызвать что-то вроде «Application.getApplication(). RequestBackground()» в методе onClose() вашего экран. –
Вы снова откроете программу из меню bb, создайте новый экземпляр приложения или просто принесите приложение на передний план с новым экраном в стеке? –