Я получаю сообщения об ошибках от пользователей, использующих Android 8, где происходит сбой приложения из-за исключительных ситуаций при переполнении при вызове canvas.restore()
.
Странно то, что я был уверен, что каждый вызов canvas.restore()
следует за балансирующим вызовом на canvas.save()
, и я все еще получал эти ошибки, я заменял каждый вызов на restore()
вызовом следующей функции:
public void saveRestore(Canvas canvas) {
if (canvas.getSaveCount() > 0)
canvas.restore();
}
Насколько я понимаю, canvas.restore()
толькодолжен выдавать исключение, когда canvas.getSaveCount()
равно 0. Но исключение все равно выбрасывается.
Эта проблема затрагивает около 7% всех пользователей и только на Android 8. Я не смог воспроизвести проблемуя, так что любые идеи и идеи приветствуются.