При нажатии кнопки я вызываю следующую функцию.
private void badButtonHandler() {
Camera.Parameters params = mCamera.getParameters();
params.setColorEffect(Camera.Parameters.EFFECT_NEGATIVE);
mCamera.setParameters(params);
if(thread != null){
thread = null;
}
thread = new Thread()
{
@Override
public void run() {
try {
while(true) {
sleep(5000);
Camera.Parameters params = mCamera.getParameters();
params.setColorEffect(Camera.Parameters.EFFECT_NONE);
mCamera.setParameters(params);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
thread.start();
}
Эта функция предназначена для изменения цветового эффекта камеры через 5 секунд после нажатия кнопки. При первом нажатии соответствующей кнопки она ведет себя так, как ожидалось. Но дополнительные вызовы этой функции ведут себя не так, как ожидалось. То есть во второй раз ждет 2 секунды, после чего уменьшается до меньших значений с каждым кликом.