如何将LED配置重置为原始设置

时间:2009-12-03 03:39:49

标签: blackberry java-me

我有一个简单的黑莓应用程序,可以更改LED设置(颜色,闪烁,图案)。 我目前的测试环境包括一个黑莓Bold(9000),我遇到了一个我不知道如何继续的问题。

假设我当前的Blackberry设置(LED明智)不闪烁,除非有未接来电,新消息(各种类型)。我写的程序将改变LED,这很好,但问题在于关闭程序。关闭程序会导致出现保存/放弃/取消对话框。目前,这不是一个问题,因为我只测试应用程序,目前的问题是即使你放弃所做的更改,灯仍将继续闪烁。我向朋友演示了程序并且它一直在闪烁,我也注意到当我收到一条新消息并且灯变为红色并且一直闪烁时(而不是绿色,我在演示中显示的最后一种颜色)。

退出程序时,如何将LED重置为之前的状态?应该还是可以复制现有设置(如网络可用时闪烁或不闪烁),然后在退出时重置为保存的默认设置?或者有更好的重置LED的方法吗?

代码非常简单;视图:

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 个答案:

答案 0 :(得分:2)

要在退出屏幕时删除保存/放弃/取消对话框,您需要覆盖屏幕上的onSavePrompt()方法。当用户离开屏幕时,您还可以在此处放置一些您想要执行的代码。例如,您可能想尝试:

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