Я попробовал ваш код в моем приложении, и у меня возникла та же проблема. Результат getGesture () равен нулю в onSaveInstanceState, onStop и onPause, поэтому я предполагаю, что GestureOverlayView недействителен где-то между поворотом экрана и вызовом этих методов.
Обходной путь - переопределить onGesturePerformed, предполагая, что ваша активность реализует OnGesturePerformedListener, и вы вызываете addOnGesturePerformedListener (this) в своем оверлее и сохраняете экземпляр члена самого последнего Gesture. Что-то вроде:
@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
mCurrentGesture = gesture;
}
Затем в вашем onSaveInstanceState просто получите и упакуйте экземпляр члена вместо вызова getGesture (). Теперь setGesture () должен работать так, как ожидалось, когда Activity воссоздает сам себя.