我正在开发一个手电筒应用程序。当我更改搜索栏上的值时,我想更改线程的睡眠时间,但是它不是在运行时实现的,而是每次我都必须停止线程以从搜索栏获得新值.` seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
value = progress;
Toast.makeText(getApplicationContext(), "changing"+value, Toast.LENGTH_SHORT).show();
}
>这里是用于创建和设置线程值的代码
public void threadinit(final int value)
{
this.value= value;
t = new Thread(new Runnable() {
@Override
public void run() {
boolean stopExecution;
final boolean toExit = false;
//while( blinks=true)
while (!t.isInterrupted()) {
params = camera.getParameters();
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.setParameters(params);
camera.stopPreview();
try {
Thread.sleep(value);
非常感谢您的回答
答案 0 :(得分:0)
Thread.sleep()不被保证。这意味着,出于各种原因(在该问题的主题之外),您可能会或可能不会在您想要的时间内睡眠。
检查此链接
How to change the delay of sleep/timer thread in android during runtime?
答案 1 :(得分:0)
我不会为此使用sleep()和interrupt(),而是使用wait()和notify()机制。