import 'dart:async'; import 'dart:ui'; import 'package:didvan/firebase_options.dart'; import 'package:didvan/models/notification_data.dart'; import 'package:didvan/services/notification/notification_service.dart'; import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter_background_service/flutter_background_service.dart'; import 'package:get/get.dart'; Future initializeService() async { final service = FlutterBackgroundService(); await service.configure( iosConfiguration: IosConfiguration( autoStart: true, onForeground: onStart, onBackground: onIosBackground), androidConfiguration: AndroidConfiguration( onStart: onStart, isForegroundMode: true, autoStart: true, autoStartOnBoot: true)); } @pragma('vm:entry-point') Future onIosBackground(ServiceInstance service) async { WidgetsFlutterBinding.ensureInitialized(); DartPluginRegistrant.ensureInitialized(); return true; } @pragma('vm:entry-point') void onStart(ServiceInstance service) { DartPluginRegistrant.ensureInitialized(); if (service is AndroidServiceInstance) { service.on('setAsForeground').listen((event) { service.setAsForegroundService(); }); service.on('setAsBackground').listen((event) { service.setAsBackgroundService(); }); } service.on('stopService').listen((event) { service.stopSelf(); }); Timer.periodic(const Duration(seconds: 1), (timer) async { if (service is AndroidServiceInstance) { if (await service.isForegroundService()) {} } NotificationService.startListeningNotificationEvents(); print('background service running'); service.invoke('update'); }); }