我要创建一个闪光灯程序。它可以与进度条更改一起用作用户输入,以将睡眠功能值设置为闪烁的闪光灯。我从SeekBarChangeListener调用我的AsyncTask时,它不起作用,什么也没发生。但是当我从onCreate函数或其他类中调用它时,一切正常,并且可以正常工作。
我的SeekBarChangeListener:
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// TODO Auto-generated method stub
Blinker bbb = new Blinker();
seekBarValue.setText(String.valueOf(progress));
try {
bbb.execute(progress*100);
} catch(Exception e) {
System.out.println("got interrupted!");
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
我的AsyncTask:
public final class Blinker extends AsyncTask<Integer, Integer, Void> {
@Override
protected Void doInBackground(Integer... params) {
try {
while (isFlashing)
{
turnOffFlashing();
Thread.sleep(params[0]);
turnOnFlashing();
Thread.sleep(params[0]);
if (isCancelled()) break;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
如果您有任何想法可以使其生效,请与我分享。谢谢。