| // Copyright 2016 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | import 'package:flutter/widgets.dart'; | 
 |  | 
 | class LifecycleWatcher extends StatefulWidget { | 
 |   @override | 
 |   _LifecycleWatcherState createState() => new _LifecycleWatcherState(); | 
 | } | 
 |  | 
 | class _LifecycleWatcherState extends State<LifecycleWatcher> | 
 |                              with WidgetsBindingObserver { | 
 |   AppLifecycleState _lastLifecyleState; | 
 |  | 
 |   @override | 
 |   void initState() { | 
 |     super.initState(); | 
 |     WidgetsBinding.instance.addObserver(this); | 
 |   } | 
 |  | 
 |   @override | 
 |   void dispose() { | 
 |     WidgetsBinding.instance.removeObserver(this); | 
 |     super.dispose(); | 
 |   } | 
 |  | 
 |   @override | 
 |   void didChangeAppLifecycleState(AppLifecycleState state) { | 
 |     setState(() { | 
 |       _lastLifecyleState = state; | 
 |     }); | 
 |   } | 
 |  | 
 |   @override | 
 |   Widget build(BuildContext context) { | 
 |     if (_lastLifecyleState == null) | 
 |       return new Text('This widget has not observed any lifecycle changes.'); | 
 |     return new Text('The most recent lifecycle state this widget observed was: $_lastLifecyleState.'); | 
 |   } | 
 | } | 
 |  | 
 |  | 
 | void main() { | 
 |   runApp(new Center( | 
 |     child: new LifecycleWatcher() | 
 |   )); | 
 | } |