flutter_foreground_task 8.16.0 flutter_foreground_task: ^8.16.0 copied to clipboard
This plugin is used to implement a foreground service on the Android platform.
8.16.0 #
- [BREAKING] Change
ServiceRequestResult
class tosealed class
for improved code readability - [BREAKING] Change method for customizing notification icon
- [FEAT] Add
copyWith
function for models reuse - Check migration_documentation for changes
8.14.0 #
- [FEAT] Support quickboot for HTC devices
8.13.0 #
- [CHORE] Downgrade iOS minimumVersion from
13.0
to12.0
8.12.0 #
- [FEAT] Add
setOnlyAlertOnce
option to AndroidNotificationOptions pr-#287 - [CHANGE] Change notification channel importance from
DEFAULT
toLOW
8.11.0 #
- [FEAT] Allow sending
Set
collection usingFlutterForegroundTask.sendDataToMain
8.10.4 #
- [FIX] Fixed an issue where main function was called repeatedly when there was no callback to start
- [FIX] Handle exceptions that occur when service component cannot be found
8.10.2 #
- [FIX] Fixed an issue where exception was thrown when flutterEngine failed to start #282
- [FIX] Fixed an issue with flutterEngine not being destroyed properly
8.10.0 #
- [BREAKING] Change
onStart
,onDestroy
callback return type fromvoid
toFuture<void>
- The onRepeatEvent callback is called when the onStart asynchronous operation has finished
- Now you can access network, database, and other plugins in onDestroy callback #276
- Check migration_documentation for changes
8.9.0 #
- [CHANGE] Ignore
autoRunOnBoot
option when service is stopped by developer - [CHANGE] Ignore
autoRunOnBoot
option when android:stopWithTask is set to true - [FEAT] Add TaskStarter to check who started the task #276
- Add
starter
parameter toonStart
callback of TaskHandler .developer
: The task has been started by the developer (startService, restartService, updateService).system
: The task has been started by the system (reboot, app-updates, AlarmManager-restart)
- Add
- [FEAT-iOS] Allow background app refresh
Bump iOS minimumVersion to 13.0- You need to add
BGTaskSchedulerPermittedIdentifiers
key inios/Runner/info.plist
file - Check Getting started-iOS for more details
8.8.1+1 #
- [DOCS] Update example to see two-way communication flow
8.8.0 #
- [REMOVE] Remove notification permission request code in startService
- Notification permission request is required before starting the service
- Check step-4 of readme
- [FIX-Android] Fix issue with calling onRepeatEvent without waiting for repeat delay after onStart
- If use the
eventAction: ForegroundTaskEventAction.repeat(millis)
- flow:
onStart
- (millis) -onRepeatEvent
- (millis) -onRepeatEvent
..
- If use the
8.7.0 #
- [FEAT] Allow permission settings page to be opened even if permission is granted
- openIgnoreBatteryOptimizationSettings()
- openSystemAlertWindowSettings()
- openAlarmsAndRemindersSettings()
8.6.0 #
- [BREAKING] Change the way to set the task intervals (for increase scalability)
- Remove
interval
,isOnceEvent
option in ForegroundTaskOptions model - Add
eventAction
option with ForegroundTaskEventAction constructor - Check migration_documentation for changes
- Remove
8.5.0 #
- [FEAT] Add
openAlarmsAndRemindersSettings
utility- This utility allows the Android OS to immediately restart service in doze mode.
- required
android.permission.SCHEDULE_EXACT_ALARM
permission. - When you call this function, will be gone to the settings page. So you need to explain to the user why set it.
- Check utility_documentation for more details.
- [FEAT] Add
canScheduleExactAlarms
utility- Returns whether the
android.permission.SCHEDULE_EXACT_ALARM
permission is granted. - In some cases, permission is granted automatically. Don't worry :)
- Returns whether the
8.3.0 #
- [FEAT] Add showBadge option to AndroidNotificationOptions.
- [DEPRECATED] Deprecated AndroidNotificationOptions.id. Use startService(serviceId) instead.
- [DOCS] Separate models, utility, migration documentation.
8.2.0 #
- [CHORE-AOS] Down Android minSdkVersion to 21
8.1.0 #
- [FIX-AOS] Fixed an issue where notification text was not visible on Android 7.1 and below
- [FEAT-iOS] Implement onNotificationButtonPressed
- [FEAT-iOS] Implement onNotificationPressed
- [FEAT-iOS] Implement onNotificationDismissed
- [FEAT-iOS] Implement notification permission request and check function
- Request notification permission in the
Example._requestPermissions
function
- Request notification permission in the
8.0.0 #
- [BREAKING] Redesign the communication method between TaskHandler and UI
- Fixed an issue where
SendPort.send
does not work when callingreceivePort
getter function after app restart #244 - Allow task data to be listened on multiple pages
- Check migration_documentation for changes
- Fixed an issue where
7.5.2 #
- [FIX] Fixed an issue that caused poor performance and delays in TaskHandler
- [FIX-iOS] Fixed an issue where onDestroy was not called when an app was closed in recent apps
7.5.0+1 #
- [DOCS] Update readme
- Update documentation on how to pass timestamp to UI isolate
- Update
WithForegroundTask
documentation comments
7.5.0 #
- [FEAT] Support notificationText with multiple lines #182
- [REMOVE] Remove
WillStartForegroundTask
widget- This widget is designed to start a service when the app is minimized.
- This widget had an ambiguous purpose, it caused a lot of problems because the widget controlled the service.
- These issues have led me to remove this widget. Please implement it yourself if necessary.
7.4.3 #
- [FEAT-Recommended] Improve restart alarm that occurs when the service terminates abnormally
7.4.2 #
7.4.0 #
- [FEAT] Add result class to handle service request errors
- The return value of service request functions changed from boolean to
ServiceRequestResult
- The return value of service request functions changed from boolean to
- [FEAT] Add function to send data to TaskHandler
- You can send data from UI to TaskHandler using
FlutterForegroundTask.sendData
function
- You can send data from UI to TaskHandler using
7.2.0 #
- [FEAT] Add ability to restart service when app is deleted from recent app list
- To restart service on Android 12+, you must allow the
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
permission
- To restart service on Android 12+, you must allow the
- [REMOVE] Remove
isSticky
from AndroidNotificationOptions- The isSticky option is automatically set by the service based on the Manifest android:stopWithTask
7.1.0 #
- [FEAT-Recommended] Allow updateService to be processed without service restart
7.0.0 #
- [CHORE] Updates minimum supported SDK version to
Flutter 3.10
/Dart 3.0
- [BREAKING] Change timezone(local > UTC) of timestamp in TaskHandler callback
- [BREAKING] Remove
iconData
,buttons
from AndroidNotificationOptions- Can use this options in the startService function
- Check migration_documentation for changes
- [FEAT] Add ability to update notification icon and buttons for Android platform
- [FEAT] Add
onNotificationDismissed
callback for Android 14
6.5.0 #
- [CHORE] Bump Android minSdkVersion to 23
- [FIX] Fixed an issue where notification actions did not work on Android 14
6.4.0 #
- [REMOVE] Remove
foregroundServiceType
option - [FEAT] Add
autoRunOnMyPackageReplaced
option
6.3.0 #
- [FEAT]
Add option to allow multiple foregroundServiceType - [DOCS] Update readme
6.2.0 #
- [FEAT] Support AGP 8
- [FEAT]
AddforegroundServiceType
option to specify foreground service type on Android 14 and higher
6.1.1 #
- [TEST] Add assertions to service options
6.1.0 #
- [BREAKING] Remove future return of TaskHandler callback function
- [FIX] Fix issue where isRunningService is not updated after calling onDestroy
- [FIX] Fix storage data not syncing between isolates
- [FIX] Fix the service could not be started when the notification channel information is empty
- [CHORE] Upgrade dependencies - shared_preferences
6.0.0+1 #
- [REFACTOR] Move required permissions on the Android platform inside the plugin
6.0.0 #
- [BREAKING] Rename the callback function to clarify what information the event provides
- Rename
onButtonPressed
toonNotificationButtonPressed
- Rename
onEvent
toonRepeatEvent
- Rename
- [FEAT] Add textColor option to NotificationButton
- [FEAT] Add ability to change task options while service is running
5.2.1 #
- [FIX] Fix issue where service could not be started in the background
5.2.0 #
- [FEAT] Add id option to AndroidNotificationOptions
- [FEAT] The WillStartForegroundTask widget supports receiving data
5.0.0 #
- [CHORE] Update dependency constraints to
sdk: '>=2.18.0 <4.0.0'
flutter: '>=3.3.0'
- [FEAT] Add notification permission request func for Android 13
FlutterForegroundTask.checkNotificationPermission()
FlutterForegroundTask.requestNotificationPermission()
- [DOCS] Update documentation to the latest version
- [FIX] Fix service not starting when notification permission is denied
4.2.0 #
- [FEAT] Add notification permission request func for Android 13
- According to the official documentation, starting with Android 13 and higher, you need to request notification permission to expose foreground service notifications.
- In this version, notification permission requests occur when the
startService
function is called. - Add
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
permission to yourAndroidManifest.xml
file.
4.1.0 #
- [CHORE] Bump Android coroutines version to 1.6.4
- [CHANGE] Change the way get receivePort from asynchronous to synchronous #128
- Can register and get receivePort without starting the service.
- From now on, register receivePort before starting the service. Please check the readme and example.
- [FIX] Fix issue where the results of the service start and stop functions did not match the service status
4.0.0 #
3.10.0 #
- [FEAT] Add
isOnceEvent
option toForegroundTaskOptions.class
. - [DOCS] Add
entry-point
pragma. - [REFACTOR] Refactor code using plugin_platform_interface.
3.9.0 #
- [FEAT] Add
allowWakeLock
option toForegroundTaskOptions.class
. - [FEAT] Add
forceOpen
option toopenSystemAlertWindowSettings()
.
3.8.2 #
- Fix issue with SharedPreferences won't provide updated data from main isolate while running on background. Thanks @h2210316651
3.8.1 #
- Fix issue where sendPort returned null when restartService called.
3.8.0 #
- Upgrade Coroutine library.
- Upgrade shared_preferences plugin.
- Separate the SendPort registration code from the foreground service related functions.
- Register a SendPort object only when the user needs a ReceivePort.
- Please see this page for a modified example.
- [FEAT] Add
isAppOnForeground
function.- Returns whether the app is in the foreground.
- This can be used when you want to perform some function when the app is in the foreground.
- [FEAT] Add
setOnLockScreenVisibility
function. Thanks @Techno-Disaster- Toggles lockScreen visibility.
- If set to true, launchApp can be run from the lockscreen.
3.7.3 #
3.7.1 #
- Add SYSTEM_ALERT_WINDOW permission request function.
- Provide a way to use notification press handler on Android 10+.
- https://developer.android.com/guide/components/activities/background-starts
- You can use the SYSTEM_ALERT_WINDOW permission to work around the above Restrictions.
3.7.0 #
- Add notification press handler for Android platform.
- Add sendPort parameter to onDestroy function of TaskHandler.
- Add receivePort getter function.
- Clarify the meaning of the dev message.
- Example updates.
3.6.0 #
- Upgrade Flutter SDK minimum version to 2.8.1
- Upgrade shared_preferences: ^2.0.13
- Add
backgroundColor
option for AndroidNotificationOptions. - Add
getAllData
function. - Fixed the problem that data not related to the service is deleted when clearAllData() is called.
- Fixed the problem that the notification button did not work when using a specific button id.
3.5.5 #
- Downgrade Android minSdkVersion to 21.
3.5.3 #
- Upgrade shared_preferences: ^2.0.11
3.5.2 #
- [iOS] Fixed an issue where notifications not related to the service were removed.
- [iOS] Improved compatibility with other plugins that use notifications.
- Additional settings are required, so please check the Readme-Getting started.
3.5.1 #
- Add process exit code to prevent memory leak.
- Fix dart formatting issues.
3.5.0 #
- Upgrade shared_preferences: ^2.0.9
- Can now add action buttons to Android notification.
3.4.1 #
- [Bug] Fixed an issue where lockMode(wakeLock, wifiLock) was not properly released when the service was forcibly shutdown.
- [Bug] Fixed an issue where foreground service notification UX was delayed on Android version 12.
3.4.0 #
- Add wakeLock to keep the CPU active in the background.
- Need to add
android.permission.WAKE_LOCK
permission toAndroidManifest.xml
file.
- Need to add
- Add wifiLock to keep the Wi-Fi radio awake in the background.
- Enable or disable can be set with
allowWifiLock
ofForegroundTaskOptions
class.
- Enable or disable can be set with
3.3.0 #
- Add
requestIgnoreBatteryOptimization
function. - Change onWillStart type from
ValueGetter
toAsyncValueGetter
.
3.2.3 #
- [Bug] Fixed an issue where IllegalArgumentException was thrown when starting the service on Android version 11 and higher.
- Bump Android minSdkVersion to 23.
- Bump Android compileSdkVersion to 31.
3.2.2 #
- [Bug] Fixed an issue where RemoteServiceException occurred intermittently.
3.2.1 #
- [iOS] Fixed an issue where all data stored in
UserDefaults.standard
was removed when the stopService function was called.
3.2.0 #
- Add
restartService
function. You can now restart the service to get the newReceivePort
. - Improve service-related function code. A return value has been added to check if the function was properly requested.
3.1.0 #
- Upgrade shared_preferences: ^2.0.8
- Add
required keyword
to parameters of saveData func. - Add
isSticky
notification option for Android.
3.0.0 #
- [BREAKING] The way you start the foreground service and register tasks has changed. Check readme for more information.
- [BREAKING] Change function name from
start
tostartService
. - [BREAKING] Change function name from
update
toupdateService
. - [BREAKING] Change function name from
stop
tostopService
. - [BREAKING] Change function name from
isRunningTask
toisRunningService
. - Added functions for data management.
- Fixed an issue where notifications were not removed when the service was stopped.
- Fixed incorrect documentation.
2.2.1 #
- Fixed playSound option not working properly in the background.
2.2.0 #
- Implement background task on iOS platform. Please check Readme as setup is required.
- Implement a service restart function to deal with unexpected errors.
- Remove
notification_options.dart
. - Add
android_notification_options.dart
. - Add
ios_notification_options.dart
. - Change the
playSound
default value fromtrue
tofalse
.
2.1.0 #
- Fixed duplicate call to startForegroundTask function.
- Optimize android native code.
- Add
sendPort
parameter to TaskCallback.
2.0.5+1 #
- Update README.md
2.0.5 #
- Fix
callbackHandle
type casting error.
2.0.4 #
- Add utility methods related to battery optimization.
- Add
showWhen
option. - Add
visibility
option. - Migrate example to null safety.
2.0.3 #
- Add
autoRunOnBoot
field toForegroundTaskOptions
. Check the readme for more details.
2.0.2 #
- Add
onDestroy
to clean up used resources in callback functions.
2.0.1 #
- Change the notification icon setting method.
- Improved the code so that the notification icon is displayed properly even when using the resource shrinker.
2.0.0 #
- [BREAKING] Remove singleton
instance
ofFlutterForegroundTask
. - [BREAKING]
TaskCallback
return type changed fromvoid
toFuture<void>
. - [BREAKING] All functions of
FlutterForegroundTask
are applied as static. - [BREAKING] The way foreground task are registered has changed. See the readme for details.
- Add
printDevLog
option. - Update README.md
- Update Example.
1.0.9 #
- Add
icon
field toNotificationOptions
. - Change the model's
toMap
function name totoJson
.
1.0.8 #
- Add
FlutterForegroundTask.instance.update()
function. - Update README.md
1.0.7 #
- Fix incorrect comments and documents.
- Add
enableVibration
notification options. - Add
playSound
notification options.
1.0.5 #
- Fix an issue where
RemoteServiceException
occurs.
1.0.4 #
- Add
WillStartForegroundTask
widget.
1.0.3 #
- Fix incorrect comments and documents.
- Add
channelImportance
notification options. - Add
priority
notification options.
1.0.1 #
- Add
WithForegroundTask
widget.
1.0.0 #
- Initial release.