Ad
Run Function When App Is In Background | Flutter
My app contains some background music.
I want to be able to shut this off when the user leaves the app.
I can do this partially by using WillPopScope
:
Future<bool> _willPopCallback() async {
player.stop();
return true;
}
But the reason this isn't the right thing is that it only works when the user clicks on the back-button
, not the home-button
. And that's quite a problem, because then the music will keep playing in the background.
How do I fix this?
Ad
Answer
Use WidgetsBindingObserver
which provides Widget callback when its getting paused/resumed. This can solve your problem
class MusicWidget extends StatefulWidget {
@override
_MusicWidgetState createState() => _MusicWidgetState();
}
class _MusicWidgetState extends State<MusicWidget> with WidgetsBindingObserver {
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
super.initState();
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
// TODO: implement didChangeAppLifecycleState
super.didChangeAppLifecycleState(state);
if(AppLifecycleState.paused == state) {
/// TODO: Stop music player
}
print(state);
}
@override
Widget build(BuildContext context) {
return Container();
}
}
Ad
source: stackoverflow.com
Related Questions
- → How do you create a 12 or 24 mnemonics code for multiple cryptocurrencies (ETH, BTC and so on..)
- → Flutter: input text field don't work properly in a simple example..... where am I wrong?
- → Can I customize the code formatting of Dart code in Atom?
- → Is it possible to develop iOS apps with Flutter on a Linux virtual machine?
- → Display SnackBar in Flutter
- → JSON ObjectMapper in Flutter
- → Material flutter app source code
- → TabBarSelection No such method error
- → How do I set the animation color of a LinearProgressIndicator?
- → Add different routes/screens to Flutter app
- → Is there a way to get the size of an existing widget?
- → How to share a file using flutter
- → Is there an easy way to find particular text built from RichText in a Flutter test?
Ad