0

我创建了一个按钮来触发我的应用程序上的脉冲 LED 动作,但我不能让它永远脉冲。它总是按值脉冲(在上面的示例中,您会看到它脉冲 10 次然后停止)

//Button Pulse
Button bpulse = (Button) findViewById(R.id.bpulse);
bpulse.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
    // TODO Auto-generated method stub                  
    Intent led = new Intent(IlluminationIntent.ACTION_START_LED_PULSE);

    led.putExtra(IlluminationIntent.EXTRA_PACKAGE_NAME, "com.devsgonemad.xslc");

    led.putExtra(IlluminationIntent.EXTRA_LED_ID,
                     IlluminationIntent.VALUE_BUTTON_2);

    led.putExtra(IlluminationIntent.EXTRA_LED_NO_OF_PULSES, 10);

    led.putExtra(IlluminationIntent.EXTRA_LED_PULSE_ON_TIME, 1000);

    led.putExtra(IlluminationIntent.EXTRA_LED_PULSE_OFF_TIME, 1000);

    led.putExtra(IlluminationIntent.EXTRA_LED_COLOR, m_ledColor);

    startService(led);

    m_isEnabled = true;
}

当按下按钮直到用户返回应用程序并停止脉冲时,我怎样才能永远使这个脉冲?

最好的祝福

4

1 回答 1

1

使用while循环怎么样?您可以将脉冲数设为 1,并让它在 while 循环中连续运行,直到满足某个条件(在您的情况下按下某个按钮)。

while(buttonNotPressed){
  led.putExtra(IlluminationIntent.EXTRA_LED_NO_OF_PULSES, 1);
  startService(led);
}

当然,这有一个明显的缺陷,您可能会启动许多并行服务,所有这些服务都试图使 LED 闪烁一次。但我想您可以控制您的 while 循环以等待服务结束,然后再开始下一次迭代。
编辑:对于等待您的服务的while循环,您需要在您的服务中添加某种标志,while循环可以等待。服务完成后,可以设置标志并且 while 循环可以移动到下一次迭代,从而让您无限循环闪烁,直到按下按钮。

于 2012-05-07T14:58:14.640 回答