registerLocationUpdate static method
Future<void>
registerLocationUpdate(
- void callback(), {
- void initCallback()?,
- Map<
String, dynamic> initDataCallback = const {}, - void disposeCallback()?,
- bool autoStop = false,
- AndroidSettings androidSettings = const AndroidSettings(),
- IOSSettings iosSettings = const IOSSettings(),
Registers a callback to receive location updates in the background.
This method starts background location tracking and calls callback whenever
a new location is available. The callback will be invoked even when the app
is in the background or terminated.
Parameters:
callback: Function called with each location update. Required.initCallback: Optional function called when the location service initializes.initDataCallback: Optional data passed toinitCallback.disposeCallback: Optional function called when the service is disposed.autoStop: If true, automatically stops tracking when app goes to background. Default is false.androidSettings: Platform-specific settings for Android. Default uses AndroidSettings with default values.iosSettings: Platform-specific settings for iOS. Default uses IOSSettings with default values.
Throws a PlatformException if registration fails.
Example:
await BackgroundLocator.registerLocationUpdate(
(location) => print('Got location: $location'),
initCallback: (data) => print('Service initialized'),
disposeCallback: () => print('Service disposed'),
autoStop: true,
);
Implementation
static Future<void> registerLocationUpdate(
void Function(LocationDto) callback,
{void Function(Map<String, dynamic>)? initCallback,
Map<String, dynamic> initDataCallback = const {},
void Function()? disposeCallback,
bool autoStop = false,
AndroidSettings androidSettings = const AndroidSettings(),
IOSSettings iosSettings = const IOSSettings()}) async {
if (autoStop) {
_widgetsBinding!.addObserver(AutoStopHandler());
}
final args = SettingsUtil.getArgumentsMap(
callback: callback,
initCallback: initCallback,
initDataCallback: initDataCallback,
disposeCallback: disposeCallback,
androidSettings: androidSettings,
iosSettings: iosSettings);
await _channel.invokeMethod(
Keys.METHOD_PLUGIN_REGISTER_LOCATION_UPDATE, args);
}