본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터: 재개 시 위젯 업데이트하기?, Flutter: Update Widgets On Resume?

by 베타코드 2023. 8. 16.
반응형

질문


Flutter에서는 사용자가 앱을 떠나서 다시 돌아왔을 때 위젯을 업데이트하는 방법이 있을까요? 제 앱은 시간 기반으로 작동하며, 가능한 빨리 시간을 업데이트하는 것이 도움이 될 것입니다.


답변


예를 들어 다음과 같이 라이프사이클 이벤트를 들을 수 있습니다 :

import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';

class LifecycleEventHandler extends WidgetsBindingObserver {
  final AsyncCallback resumeCallBack;
  final AsyncCallback suspendingCallBack;

  LifecycleEventHandler({
    this.resumeCallBack,
    this.suspendingCallBack,
  });

  @override
  Future<void> didChangeAppLifecycleState(AppLifecycleState state) async {
    switch (state) {
      case AppLifecycleState.resumed:
        if (resumeCallBack != null) {
          await resumeCallBack();
        }
        break;
      case AppLifecycleState.inactive:
      case AppLifecycleState.paused:
      case AppLifecycleState.detached:
        if (suspendingCallBack != null) {
          await suspendingCallBack();
        }
        break;
    }
  }
}



class AppWidgetState extends State<AppWidget> {
  void initState() {
    super.initState();

    WidgetsBinding.instance.addObserver(
      LifecycleEventHandler(resumeCallBack: () async => setState(() {
        // 어떤 작업 수행
      }))
    );
  }
  ...
}
반응형

댓글