Флаттер обнаруживает уничтожение приложения - PullRequest
0 голосов
/ 29 августа 2018

Я хотел бы знать, возможно ли обнаружение прекращения работы приложения. Допустим, в приложении чата мне удалось получить метку времени, когда пользователь покидает комнату чата, с помощью onWillPop. Но если пользователь убил приложение прямо из чата, оно не будет запущено. Так есть ли способ обнаружить это?
Или какие-либо предложения, чтобы получить метку времени другим способом?

1 Ответ

0 голосов
/ 29 августа 2018

См. Также https://flutter.io/flutter-for-android/#how-do-i-listen-to-android-activity-lifecycle-events

Вы можете прослушивать неактивные, приостановленные и приостановленные. Это может быть слишком рано, но обычно лучше проводить очистку слишком рано и слишком часто, чем вовсе:

WidgetsBinding.instance.addObserver(LifecycleEventHandler(
    suspendingCallBack: () async => widget.appController.persistState(),
    resumeCallBack: () async {
      _log.finest('resume...');
    }));
class LifecycleEventHandler extends WidgetsBindingObserver {
  LifecycleEventHandler({this.resumeCallBack, this.suspendingCallBack});

  final FutureVoidCallback resumeCallBack;
  final FutureVoidCallback suspendingCallBack;

//  @override
//  Future<bool> didPopRoute()

//  @override
//  void didHaveMemoryPressure()

  @override
  Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
    switch (state) {
      case AppLifecycleState.inactive:
      case AppLifecycleState.paused:
      case AppLifecycleState.suspending:
        await suspendingCallBack();
        break;
      case AppLifecycleState.resumed:
        await resumeCallBack();
        break;
    }
    _log.finest('''
=============================================================
               $state
=============================================================
''');
  }

//  @override
//  void didChangeLocale(Locale locale)

//  @override
//  void didChangeTextScaleFactor()

//  @override
//  void didChangeMetrics();

//  @override
//  Future<bool> didPushRoute(String route)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...