I was initially getting poor battery life with my new Garmin Vivoactive 4 (3-4 days), but with some changes I am getting much better battery life (8-10 days with GPS runs mixed in). Thought I would pass along what I did in case it might help someone.
First, I changed the watch face. I estimate this alone saved about 7% of battery or more per day. Initially I was using a third party watch face. I switched to the "blue swirl" Garmin watch face included with the watch and I edited the watch face to only display battery life, date and time (hours and minutes only, no seconds bar or whatever that is circling the watch face and no steps or heart rate), I am still experimenting with other watch faces to try to display more data, but this is my base line for battery life. My theory is that I avoid displaying any data on the watch face that updates more frequently than once a minute. That seems to help with battery life.
I charged the watch for 1 hour past when it said 100%. Not sure if this made a difference, but it is something I did in between when I was getting poor battery life and when I was getting better battery life.
After listening to music, I switched the music source from "My Music" to "Phone". I noticed that if I did this and turned off Bluetooth through the controls menu, it would grey out the music player. Again I don't know if this saved any battery life, but it is somethig I did, and still do. I only activate blue tooth when I sync. I don't use notifications. However, I did experiment with leaving blue tooth on for a while and it didn't seem to have much of an effect on battery life, but I still didn't use notifications much, so that might be why.
Those are the things I remember changing just before I had the "night and day" improvement in battery life.
Other things I do to preserve battery life. I use backlight at 20% (default is 30%). I set vibration level to low in system settings. I use just GPS for my runs, bikes, etc., not GPS + Glonass or GPS + Galileo. This can be changed in the settings for each activity (Run, Bike, etc.) that uses GPS. I do not use Pulse Ox (for now, I may switch to using it at night as it seems like it only uses about 2% more of battery per 8 hours). I still use 24/7 heart rate monitoring and 24/7 activity monitoring (steps, sleep).
I am currently using software version 3.8. It doesn't seem to have had any noticeable negative effect on battery life for me (knock on wood).
I wear my watch mostly 24-7, so the blinking HR monitor issue when the watch is off hasn't effected me that much, though I have noticed it. It seems to be better now. I have not been having to reset my watch like others have.
I really wish Garmin would come out with an update that allows me greater control over when the backlight comes on. Right now, it comes on anytime I touch the screen or press a button, but there are so many times when the lighting is adequate and I don't need the backlight. I am just wasting battery. I would also like the option to treat HR monitoring the same way GPS is treated, i.e. only switched on during activities. I might stick with 24/7 HR monitoring anyway, but I would like this as an option.
Other pleas for Garmin in a future update (besides addressing stability issues), new Garmin Coach training plans for Marathons with a time goal and a Garmin Triathlon app compatible with this watch for triathlons that use swimming pools for the swims.
Hope this helps.