У меня есть приложение Multi-Shot в приложении моей камеры. Для этого я использую следующий код.Приложение зависает, когда таймер выключен/включен часто
if (TIMER_STARTED) {
multishotTimer.cancel();
multishotTimer.purge();
multishotTimer = null;
TIMER_STARTED = false;
} else {
multishotTimer = new Timer();
multishotTimer.schedule(new TimerTask() {
@Override
public void run() {
TIMER_STARTED = true;
Camera camera = surfaceView.getCamera();
camera.takePicture(null, null,
new HandlePictureStorage());
}
}, 1000, 5000L);
}
Здесь TIMER_STARTED является логическим флагом, который показывает, запущен ли таймер или нет. HandlePictureStorage класс, который обрабатывает PictureCallback.
Вопрос: Когда я впервые нажимаю кнопку «MultiShot», он запускает таймер и снимает изображение каждые 5 секунд. Чтобы остановить таймер, я еще раз нажимаю на ту же кнопку. Но если я постоянно нажимаю на кнопку, приложение зависает и сила останавливается. Затем после того, как мне нужно выключить устройство из-за того, что камера используется остановленным сервисом и не может ее легко отпустить. Как я могу управлять таймером запуска и остановки?
Позвольте мне попробовать ваши изменения кода. :) –
У меня есть ключ от вашего ответа и исправлена проблема. :) –