Buscar pacotes, repositórios e categorias de apps

Detalhes do pacotev0.8.0

flutter_fgbg

Plugin Flutter para detectar quando o aplicativo (não container do Flutter) vai para segundo plano ou primeiro plano

AndroidiOS
Downloads em 30 dias
130 mil
Curtidas
182
Pontos Pub
140

Instalar pacote

flutter pub add flutter_fgbg

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

flutter_fgbg é um plugin Flutter que detecta quando o aplicativo (não apenas o contêiner Flutter) muda entre estados de primeiro plano e segundo plano no Android e no iOS. Ele fornece callbacks confiáveis para eventos do ciclo de vida do aplicativo, como entrar em segundo plano ou retornar ao primeiro plano, permitindo que os desenvolvedores gerenciem recursos, pausam temporizadores ou salvem o estado adequadamente. O plugin se integra perfeitamente às APIs nativas das plataformas para garantir detecção precisa em diferentes condições de dispositivo.

Casos de uso

  • Gerenciamento de tarefas em segundo plano
  • Pausar a reprodução de mídia
  • Salvar estado do usuário
  • Gerenciando atualizações de localização
  • Otimização do uso da bateria

Principais recursos

  • Suporte multiplataforma (Android e iOS)
  • Detecção de ciclo de vida em nível nativo
  • API baseada em eventos simples
  • Leve e eficiente
  • Mudanças em tempo real no estado de primeiro plano/fundo

Indicado para

  • Aplicativos que precisam de conscientização precisa do ciclo de vida
  • Aplicativos de mídia ou jogos
  • aplicações sensíveis à localização
  • Aplicativos conscientes de bateria
  • fluxos de trabalho de processamento em segundo plano

Considerações

  • Requer manipulação adequada dos limites de execução em segundo plano
  • Pode não ser acionado imediatamente em todos os fabricantes de dispositivos
  • Limitado ao estado de nível de aplicativo, não a widgets individuais do Flutter
  • Sem suporte para plataformas da web ou desktop
  • Depende do comportamento do sistema operacional nativo, que pode variar

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

Flutter Foreground/Background Event Notifier

Flutter plugin to detect when app(not Flutter container) goes to background or foreground.

Why

Flutter has WidgetsBindingObserver to get notified when app changes its state from active to inactive states and back. But it actually includes the state changes of the embedding Activity/ViewController as well. So if you have a plugin that opens a new activity/view controller or in iOS if you start a FaceID prompt then WidgetsBindingObserver will report as the app is inactive/resumed.

This plugin on the other hand reports the events only at app level. Since most apps need only background/foreground events this plugin is implemented with just those events. In iOS, plugin reports didEnterBackgroundNotification and willEnterForegroundNotification notifications and in Android, plugin reports these using androidx.lifecycle:lifecycle-process package. In other platforms plugin fallbacks to AppLifecycleListener API for signals.

Checkout example/ project to see the differences in action.

Getting Started

Add to your pubpsec:

flutter pub add flutter_fgbg

Do a clean build to integrate the plugin native code to app. Otherwise you might encounter MissingPluginException.

Use the built in Widget:

FGBGNotifier(
    onEvent: (event) {
        print(event); // FGBGType.foreground or FGBGType.background
    },
    child: ...,
)

Or consume the event stream directly:

import 'package:flutter_fgbg/flutter_fgbg.dart';

StreamSubscription<FGBGType> subscription;

...
// in initState
subscription = FGBGEvents.instance.stream.listen((event) {
    print(event); // FGBGType.foreground or FGBGType.background
});

// in dispose
subscription.cancel();

Caveats

In newer Android versions and image_picker library, picking an image will open a different app this will make Flutter app switch to background/foreground and flutter_fgbg will report this. At the moment there is no solution to this since the API is working as intented. Tracking the issue here.

As a work around you can use FGBGEvents.ignoreWhile API like this:

FGBGEvents.ignoreWhile(() async {
    await picker.pickImage(source: ImageSource.gallery);
    // or do something else that can put app to background but don't want to be handled by flutter_fgbg
});

Categorias

Repositório-fonte

Projetos que usam este pacote