Are you saying that once the user "checks IN", it is OK to send data to the backend, but once the user "checks OUT" that your app is prohibited from sending any data to the backend?
App is prohibited from sending any data to the backend if the user is not authenticated by entering username / password.
I mean that if the user clicked on Exit button and stopped the app or even if he didn't stop the app and the app is still running he might be logged out like on the web site. For example user logged in, did clock In, sent the info back to the server and left the phone on a table for 1 hour. Upon his return he will see a message - your idle time (30 minutes) has expired, please login again. It was done as a precaution in case the phone was lost or stolen and the app was running when it happened. So in either case - the user wasn't logged in and because of that nothing can be send.
Briefly
On login - send the info (time stamp and location)
On clock In - send the info
Between clock in and clock out - send the info (it calls task info describing what he is doing, he must to fill them before open clock out screen and this info will be send back to the server with time stamp and location)
On clock Out - send the info (time stamp and location)
The worst case scenario - no Internet for the whole day, let's say user is in some rabbit hole or even in Manhattan, believe me - there are a lot of places in Manhattan even now when you can loose your connection just around the corner.