My suggestion would be to use region monitoring to check-in & check-out.
Example:
- Arrive to work at 9:30 AMlocationManager:didEnterRegion: called
- During execution time that you're alive save the time and that it was an entry
- Leave for lunch at 11 AM locationManager:didExitRegion: fired
- During execution time that you're alive save the time and that it was an exit
- Arrive to back from lunch at 12:00 PMlocationManager:didEnterRegion: called
- During execution time that you're alive save the time and that it was an entry
- Leave for home at 5 PM locationManager:didExitRegion: fired
- During execution time that you're alive save the time and that it was an exit
User then at end of day looks at their device, and your app.. Do some math and post results to the UI.
Since the app is flash frozen most of the day, and during the hours of 6 PM - 10 AM you're most likely not at work.. then you would not be waken up to make any recordings anyways.