如何解决在失败时隐藏后台位置通知
我使用 workmanager 每 15 分钟在后台检索用户的位置。当位置获取失败时,我会收到一条错误通知,如图所示。我想知道如何防止通知在失败情况下显示。
void callbackdispatcher() {
Workmanager.executeTask((taskName,inputData) async {
if (taskName == FETCH_USER_POSITION_IN_BACKGROUND_TASK_NAME) {
// Todo: Find a better way to get user position,maybe with ServiceLocator or even better with BLoC
final dataSource = GeolocatorDataSource();
final remoteDataSource = FirestoreRemoteDataSource(
firebaseFirestore: FirebaseFirestore.instance,);
final repository = GeolocationRepository(
geolocationDataSource: dataSource,remoteDataSource: remoteDataSource,);
final positionEither = await repository.getUserPosition();
positionEither.fold((failure) async {
print('failure: $failure');
},(position) async {
print('position = $position');
final storePositionEither =
await repository.storeUserPosition(position,inputData['uid']);
storePositionEither.fold((failure) async {
print('failure: $failure');
},(isstored) async {
print("Position has been successfully stored in background!");
});
});
}
return Future.value(true);
});
}
void _initializeWorkManagerWhenAuthenticated(String userId) {
bool isProduction = bool.fromEnvironment('dart.vm.product');
Workmanager.initialize(
callbackdispatcher,isInDebugMode: !isProduction,);
Workmanager.registerPeriodicTask(
FETCH_USER_POSITION_IN_BACKGROUND_TASK_ID,FETCH_USER_POSITION_IN_BACKGROUND_TASK_NAME,frequency: Duration(minutes: 15),existingWorkPolicy: ExistingWorkPolicy.keep,inputData: {
'userId': userId,},);
}
解决方法
您是否检查过使用 isInDebugMode: false
运行时是否出现通知?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。