foreground_util.dart 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import 'package:flutter_foreground_task/flutter_foreground_task.dart';
  2. Future<ServiceRequestResult> startForegroundService({
  3. int? serviceId,
  4. required String notificationTitle,
  5. required String notificationText,
  6. NotificationIconData? notificationIcon,
  7. List<NotificationButton>? notificationButtons,
  8. required Function callback,
  9. }) async {
  10. final NotificationPermission notificationPermission =
  11. await FlutterForegroundTask.checkNotificationPermission();
  12. if (notificationPermission != NotificationPermission.granted) {
  13. await FlutterForegroundTask.requestNotificationPermission();
  14. }
  15. if (await FlutterForegroundTask.isRunningService) {
  16. return FlutterForegroundTask.restartService();
  17. } else {
  18. return FlutterForegroundTask.startService(
  19. serviceId: serviceId,
  20. notificationTitle: notificationTitle,
  21. notificationText: notificationText,
  22. notificationIcon: notificationIcon,
  23. notificationButtons: notificationButtons,
  24. callback: callback,
  25. );
  26. }
  27. }
  28. Future<void> stopForegroundService() async {
  29. if (await FlutterForegroundTask.isRunningService) {
  30. FlutterForegroundTask.stopService();
  31. }
  32. }