我已经创建了一个按钮来触发我的应用程序上的脉冲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;
}
按下按钮后,如何永久制作此脉冲,直到用户返回应用程序并停止脉冲?
祝你好运
答案 0 :(得分:1)
使用while循环怎么样?您可以将脉冲数设置为1,并让它在while循环中连续运行,直到满足某些条件(在您的情况下按下某个按钮)。
while(buttonNotPressed){
led.putExtra(IlluminationIntent.EXTRA_LED_NO_OF_PULSES, 1);
startService(led);
}
当然,这有一个明显的缺陷,你可能会启动许多并行服务,试图一次闪烁LED。但我猜你可以控制你的while循环,等待服务结束,然后再开始下一次迭代 编辑:对于等待你的服务的while循环,你需要在服务中添加一些while循环可以等待的标志。一旦服务完成,就可以设置标志,并且while循环可以移动到下一次迭代,从而为您提供无限次闪烁,直到按下按钮。