有没有办法让这个脉冲数无限?

时间:2012-05-07 14:51:53

标签: java android button infinite pulse

我已经创建了一个按钮来触发我的应用程序上的脉冲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;
}

按下按钮后,如何永久制作此脉冲,直到用户返回应用程序并停止脉冲?

祝你好运

1 个答案:

答案 0 :(得分:1)

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

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

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