Java 有没有办法使这个脉冲数无限大?

Java 有没有办法使这个脉冲数无限大?,java,android,button,infinite,pulse,Java,Android,Button,Infinite,Pulse,我已经在我的应用程序上创建了一个按钮来触发脉冲LED动作,但我不能让它永远脉冲。它总是按值脉冲(在上面的示例中,您将看到它脉冲10次,然后停止) 当按下按钮直到用户返回应用程序并停止它的脉冲时,我如何使这个脉冲永远保持不变 致以最诚挚的问候使用while循环怎么样?你可以把脉冲数设为1,让它在一个while循环中连续运行,直到满足某个条件(在你的情况下,某个按钮被按下) while(buttonNotPressed){ led.putExtra(IlluminationIntent.EXTR

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

当按下按钮直到用户返回应用程序并停止它的脉冲时,我如何使这个脉冲永远保持不变


致以最诚挚的问候

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

while(buttonNotPressed){
  led.putExtra(IlluminationIntent.EXTRA_LED_NO_OF_PULSES, 1);
  startService(led);
}
当然,这有一个明显的陷阱,您可能会启动许多并行服务,所有这些服务都试图一次闪烁LED。但我想您可以控制while循环,在开始下一次迭代之前等待服务结束。

编辑:为了让while循环等待您的服务,您需要在服务中添加某种标志,while循环可以在其中等待。服务完成后,可以设置标志,while循环可以进入下一个迭代,从而在按下按钮之前为您提供无限次的闪烁。

在服务中发布代码。您的脉冲代码在哪里,您面临的问题是什么?这就是触发LED脉冲动作的代码,我使用的是索尼的一个外部jar文件,它允许我控制LED。我的问题是,当用户按下按钮时,我希望脉冲效果保持激活状态,此时,它会在指定的屏幕上显示上面所示的脉冲数。这对我来说是一个不错的方法,只要我知道如何实现它;)这是我学习和试用Java的第二周,我以前从未有过任何编程经验,所以我们可以说我几乎是个新手;)你能告诉我更多关于你前面提到的那个标志吗?其实有多种实现方法,这完全取决于你是如何编写服务的。基本思想是让while循环知道何时启动另一个服务(仅在一个服务结束后)。因此,您可以在服务结束时设置一个全局整数(一个标志)。或者,您可以在共享首选项中使用一个整数值作为标志。现在要等待这个变量,您需要在第一个while循环中使用另一个while循环。类似于:
while(myFlag){sleep(1000);}
即:如果未设置该标志,请先休眠一秒钟。现在,如果您计划使用该标志,请确保有一个单独的线程使该while循环休眠。如果使主UI线程处于睡眠状态,则程序在睡眠期间将变得无响应。我还建议您尝试我在答案中输入的代码,而不必担心abt标志(如在“让许多并行服务被创建”中),然后看看会发生什么。您甚至不需要while循环来等待。试试看,告诉我发生了什么。好吧,我现在非常困惑,我今天刚参加了考试,整整一周都在做这件事,现在我有更多的时间致力于这项爱好,所以你的意思是我应该在代码之间停留一会儿?在这两者之间?:led.putExtra(照明内容.EXTRA_led_脉冲数,1);startService(led);我怎么说呢?没按吗?
while(buttonNotPressed){
  led.putExtra(IlluminationIntent.EXTRA_LED_NO_OF_PULSES, 1);
  startService(led);
}