Führen Sie Apps im Hintergrund mit Vordergrunddiensten unter Android aus. Ideal für Anwendungen, die eine kontinuierliche Ausführung erfordern, beispielsweise Hintergrunddatensynchronisierung oder Messaging.
Aus öffentlichen Paketdaten erstellte Orientierung.
Das flutter_background-Paket ermöglicht Android-Anwendungen, im Vordergrund mit dauerhaften Diensten ausgeführt zu werden, wodurch eine kontinuierliche Ausführung auch dann gewährleistet ist, wenn die App nicht aktiv genutzt wird. Es ist ideal für Aufgaben wie Hintergrunddatensynchronisierung, Echtzeit-Nachrichten oder Standortverfolgung, die eine ununterbrochene Ausführung erfordern. Durch die Nutzung der Vordergrunddienstfunktionen von Android verhindert es, dass das Betriebssystem die App aufgrund von Speichermanagement beendet. Das Paket integriert sich nahtlos in Flutter und unterstützt nur Android-Plattformen.
Anwendungsfälle
Hintergrunddatensynchronisierung
Echtzeit-Nachrichten
Standortverfolgung
Lange laufende Aufgaben
Persistente Dienstausführung
Hauptmerkmale
Unterstützung für Vordergrund-Dienste
Nur Android-Plattform
Persistente Hintergrundausführung
Einfache Integration mit Flutter
Verhindert die Beendigung der App
Geeignet für
Apps, die kontinuierliche Hintergrundausführung benötigen
Entwickler, die Nachrichten- oder Synchronisierungsfunktionen erstellen
Projekte, die zuverlässige Vordergrunddienste erfordern
Android-fokussierte mobile Anwendungen
Anwendungsfälle, in denen App-Stabilität entscheidend ist
Hinweise
Nur für Android
Benutzerberechtigung für Hintergrunddienste erforderlich
Kann die Akkulaufzeit beeinträchtigen
Ereignisse des Lebenszyklus müssen ordnungsgemäß behandelt werden
Nicht kompatibel mit iOS
Original-README
Originaler README-Schnappschuss aus dem verknüpften Quell-Repository. Aktuelle Inhalte finden Sie im Repository.
flutter_background
A plugin to keep flutter apps running in the background. Currently only works with Android.
Note: This plugin currently only works with Android.
PRs for iOS are very welcome, although I am not sure if a similar effect can be achieved with iOS at all.
Add the following permissions to the AndroidManifest.xml:
<manifestxmlns:android="http://schemas.android.com/apk/res/android"package="de.julianassmann.flutter_background_example"><!-- Adapt to the foreground service type(s) desired, these are just examples --><uses-permissionandroid:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" /><uses-permissionandroid:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" /><application>
...
<!-- Adapt to the foreground service type(s) desired, these are just examples --><serviceandroid:name="de.julianassmann.flutter_background.IsolateHolderService"android:exported="false"android:foregroundServiceType="dataSync|specialUse|..." /></application></manifest>
Important: You must specify the appropriate foregroundServiceType for your use case. See the Android docs and the list of available service typs for more information on foreground service types.
Other platforms
Android is the only supported platform. There are currently no plans to extend support for other platforms, but feel free to change that by contributing to this plugin.
Before you can use this plugin, you need to initialize it by calling FlutterBackground.initialize(...):
final androidConfig = FlutterBackgroundAndroidConfig(
notificationTitle: "flutter_background example app",
notificationText: "Background notification for keeping the example app running in the background",
notificationImportance: AndroidNotificationImportance.normal,
notificationIcon: AndroidResource(name: 'background_icon', defType: 'drawable'), // Default is ic_launcher from folder mipmap
);
bool success = awaitFlutterBackground.initialize(androidConfig: androidConfig);
This ensures all permissions are granted and requests them if necessary. It also configures the
foreground notification. The configuration above results in the foreground notification shown below when
running FlutterBackground.enableBackgroundExecution().
The arguments are:
notificationTitle: The title used for the foreground service notification.
notificationText: The body used for the foreground service notification.
notificationImportance: The importance of the foreground service notification.
notificationIcon: The icon used for the foreground service notification shown in the top left corner. This must be a drawable Android Resource (see here for more). E. g. if the icon with name "background_icon" is in the "drawable" resource folder, it should be of value `AndroidResource(name: 'background_icon', defType: 'drawable').
enableWifiLock: Indicates whether or not a WifiLock is acquired when background execution is started. This allows the application to keep the Wi-Fi radio awake, even when the user has not used the device in a while (e.g. for background network communications).
In this example, background_icon is a drawable resource in the drawable folders (see the example app).
For more information check out the Android documentation for creating notification icons for more information how to create and store an icon.
In order to function correctly, this plugin needs a few permissions.
FlutterBackground.initialize(...) will request permissions from the user if necessary.
You can call initialize more than one time, so you can call initalize() every time before you call enableBackgroundExecution() (see below).
In order to notify the user about upcoming permission requests by the system, you need to know, whether or not the app already has these permissions. You can find out by calling
before calling FlutterBackground.initialize(...). If the app already has all necessary permissions, no permission requests will be displayed to the user.
you can try to get the app running in the background. You must call FlutterBackground.initialize() before calling FlutterBackground.enableBackgroundExecution().
you can stop the background execution of the app. You must call FlutterBackground.initialize() before calling FlutterBackground.disableBackgroundExecution().
To check whether background execution is currently enabled, use
The example is a TCP chat app: It can connect to a TCP server and send and receive messages. The user is notified about incoming messages by notifications created with the plugin flutter_local_notifications.
Using this plugin, the example app can maintain the TCP connection with the server, receiving messages and creating notifications for the user even when in the background.