With the widget App Events from module Native Mobile Resources you can trigger when device network status is changed to online: a nanoflow with custom logic or trigger default ‘synchronize all’.
Any new or changed objects can be filtered with a isSynced($object) check. (https://docs.mendix.com/refguide/special-checks#synced)
EventHandlers are only called on the server and not on the device, so will only be triggered when device syncronizes with the Mx server.
For the 1st point what i can suggest is, in the landing page of Mobile offline application, create one data source microflow and do the following activities :
1. Create JS to check device network mode (Online or Offline) and it should return a boolean value
2. If device is in offline don’t map any synch logics, else call 2nd point Synchronization logics.
The advantage of this is, no need to manual synch always when device is in online mode, automatically synch will happen in the background.
And i am not sure about 2nd point.