Search packages, repositories and app categories

Package detailsv2.0.1+1

foreground_service

Flutter plugin for running dart stuff via an Android foreground service. Only barely tested on Android O, and ever so slightly on M. iOS support not planned.

30-day downloads
25
Likes
52
Pub points
30

Install package

flutter pub add foreground_service

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

A Flutter plugin enabling Dart code to run in an Android foreground service, ensuring long-running tasks continue even when the app is in the background. Designed primarily for Android O and later, with minimal testing on older versions. iOS support is not planned. The plugin integrates with Android's foreground service lifecycle, allowing apps to maintain critical operations like location tracking or audio playback without being killed by the system. It requires proper configuration and permissions in the Android manifest.

Use cases

  • Background location tracking
  • Long-running data processing
  • Audio playback in background
  • Persistent network connections
  • Real-time monitoring services

Key features

  • Android foreground service integration
  • Dart code execution in foreground context
  • System-level persistence
  • Minimal iOS support
  • Manifest configuration required

Suitable for

  • Apps needing background task reliability
  • Location-based services
  • Media players
  • IoT device controllers
  • Real-time data sync

Considerations

  • No iOS support
  • Limited testing on older Android versions
  • Requires Android manifest setup
  • Foreground service notification needed
  • Battery usage implications

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

foreground_service (Flutter v.1.12.x or later)

Create Android foreground service/notification

Prep (Android side):

Android foreground services require a notification to be displayed,
and notifications require an icon.

For this plugin to work, the icon needs to be in this specific location:

res/drawable/org_thebus_foregroundserviceplugin_notificationicon

(take a look at the /example app if you're confused)


-- NOTE FOR PLUGIN VERSION 2.0.0 and above --
compileSdkVersion & targetSdkVersion need to be 29 or above, or the build will fail
these values are set/can be changed in the build.gradle for the app

Use (Flutter/Dart side):

To start the service, call ForegroundService.startForegroundService([serviceFunction])

serviceFunction will then be executed periodically, but "minimum/best-effort"
i.e. it will try to make the interval between function executions *at least* that long

Doesn't work?

As long as you're calling ForegroundService.startForegroundService,
"flutter run" should show error messages that indicate what's wrong/missing

i.e. messages beginning with E/ForegroundServicePlugin indicate an error from the plugin

Caution:

ForegroundService.notification.get* methods may give unexpected values.

Once notifications are sent out, there's no way to retrieve the "current" data.

To work around this, the plugin keeps a version of the notification around.
This version may not have been "sent out" yet, however.

Disclaimer:

Most of the fancy stuff is shamelessly pilfered from the android_alarm_manager plugin

Categories

Source repository

Projects using this package

No data available yet.