Since holding a system service object has a very low current cost, I recommend holding it in a data item. Whether you get it in onCreate() or lazily initialize it if / when needed is up to you.
Note that using a system service object can have significant costs. Holding an instance of LocationManager cheap; using GPS (e.g. via requestLocationUpdates() ) is not cheap.
CommonsWare
source share