is the system persisting them or do I have to add them again them after reboot? I have not found anything about that in the documentation at https://developer.android.com/tr
Which data do you want to persist? Is it the geofence region in your device or the geofence region stored by Google Play Service Location API ?
I believe the device need to register a region (defined by its latitude, longitude and radius) to Google Play Service (via LocationClient). You also need to provide expiration time, transition type you want to be notified, and the Intent from which you will be notified.
This region will be stored (remotely) not in your App. When it pass its expiration time, Google Play Service will automatically remove it. You can also set it as NEVER_EXPIRE. If the region is not expired yet, Google Play Service will notify your App (via intent that you send when calling addGeofences).
The source of the region (lat, long, radius) is up to your implementation.
I haven't found any documentation confirming this, but my own experiments have shown that they are not persisted across reboots.
My setup was as follows:
If anyone has more information on this from someone at Google please comment!
Geofences will not persist on reboot.
You have to listen for BOOT_COMPLETED action and add geofences again.
Note: If your app installed on external storage(SD card), you will never receive Boot Complete action. So you have to specify android:installLocation="internalOnly"
in the manifest tag
.
This is because, android device will broadcast BOOT_COMPLETED action before setting up the external storage.