Add an example of listening to app lifecycle events (#4623)
Fixes #4553
This commit is contained in:
parent
833b121664
commit
ba4f1e02c2
48
examples/layers/services/lifecycle.dart
Normal file
48
examples/layers/services/lifecycle.dart
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
// 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()
|
||||||
|
));
|
||||||
|
}
|
@ -394,9 +394,9 @@ String getMissingPackageHintForPlatform(TargetPlatform platform) {
|
|||||||
switch (platform) {
|
switch (platform) {
|
||||||
case TargetPlatform.android_arm:
|
case TargetPlatform.android_arm:
|
||||||
case TargetPlatform.android_x64:
|
case TargetPlatform.android_x64:
|
||||||
return 'Is your project missing an android/AndroidManifest.xml?';
|
return 'Is your project missing an android/AndroidManifest.xml?\nConsider running "flutter create ." to create one.';
|
||||||
case TargetPlatform.ios:
|
case TargetPlatform.ios:
|
||||||
return 'Is your project missing an ios/Info.plist?';
|
return 'Is your project missing an ios/Info.plist?\nConsider running "flutter create ." to create one.';
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user