반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- swagger-typescript-api
- uint16array
- web track
- Excel
- RouteObserver
- Completer
- FirebaseAnalytics
- react
- uint8array
- methodChannel
- userevent_tracker
- node
- Image Resize typescript
- Game js
- code editor
- Flutter
- Redux
- Prism.js
- KakaoMap
- typescript
- webrtc
- androidId
- Babel standalone
- Raycasting
- REST API
- Three-fiber
- Three js
- jszip
- identifierForVender
- babel
Archives
- Today
- Total
Never give up
Flutter - WidgetsBindingObserver 본문
반응형
유저가 앱을 잠깐 pause(terminate 아닙니다) 시켰을 때
어떤 작동을 중단하거나 다시 돌아왔을 때 특정한 이벤트를 발생시켜주거나 할 때
어떻게 처리해야될지 고민이 많이 될텐데
이 부분을 WidgetsBindingObserver를 통해 간단하게 해결할 수 있습니다
class _ObserverExampleState extends State<ObserverExample>
with WidgetsBindingObserver {
String _text = 'Wait';
@override
void initState() {
super.initState();
WidgetsBinding.instance!.addObserver(this);
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
switch (state) {
case AppLifecycleState.resumed:
setState(() {
_text = 'Resumed!';
});
print('resumed');
break;
case AppLifecycleState.inactive:
print('inactive');
break;
case AppLifecycleState.detached:
print('detached');
break;
case AppLifecycleState.paused:
print('paused');
break;
default:
break;
}
}
@override
void dispose() {
WidgetsBinding.instance!.removeObserver(this);
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text(widget.title)),
body: Center(child: Text(_text)));
}
}
해당 예제는 간단하게 유저가 잠깐 pause 시켰다가 돌아왔을 때
setState를 해서 text를 바꿔주는 간단한 예제인데
이걸 어디다 써먹지라는 생각이 들수도 있는데
간단한 예를 들어보자면 타사 서비스를 이용하기 위해 잠시동안 앱을 나갔다가
다시 돌아왔을 때 특정한 처리를 해준다거나
권한 요청을 위해 설정화면을 불러온 후 다시 앱으로 돌아왔을 때 재확인 할 때 등등
의외로 사용할 부분이 많습니다
반응형
'Flutter' 카테고리의 다른 글
Flutter - Easy Overlay (feat. toast) (0) | 2021.08.13 |
---|---|
Flutter - Scrollable with sliver (0) | 2021.06.26 |
Flutter 2.0 - typedef callback with ScaffoldMessenger Widget, global key (0) | 2021.05.08 |
Flutter - FCM device to device, device to all devices (3) | 2021.04.24 |
Flutter - Loop PageView (0) | 2021.04.17 |
Comments