Thats correct, you can save your state just before a Service is killed. The onDestroy() method is always called by the OS first. And Android will automatically try to restart your Service, when resources are sufficiently available again.
I also prefer Android approach, even if theoretical performance might be lower not being native.