gpt4 book ai didi

Flutter 以编程方式关闭应用程序,但来自 appState

转载 作者:IT王子 更新时间:2023-10-29 07:06:38 24 4
gpt4 key购买 nike

答案here通过 Widget 显示正在退出的应用程序。

我想知道,如果我可以退出 initPlatformState(){...}

特别针对我的情况,我在 initPlatformState(){...} 中有 bool 响应,即 bool reqperm = await SimplePermissions.requestPermission(permission);

我想要的是如果 reqperm 为假,应用程序退出。

完整代码:

class StartPlayer extends StatefulWidget{
@override
appState createState() => new appState();

}
class appState extends State<StartPlayer>{

String _platformVersion = 'Unknown';
Permission permission;
Songs songS;
bool loading = true;
var allsongs;

@override
void initState() {
// TODO: implement initState
super.initState();
initPlatformState();
}

initPlatformState() async {

loading = true;
String platformVersion;
try {
platformVersion = await SimplePermissions.platformVersion;
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
bool chkperm = await SimplePermissions.checkPermission(permission);
if(chkperm) {
try {
allsongs = await methodsMP.allSongs();
} catch (e) {
print("Fials to load songs : '${e.message}'.");
}
}
else{
bool reqperm = await SimplePermissions.requestPermission(permission);
if(reqperm){
try {
allsongs = await methodsMP.allSongs();
} catch (e) {
print("Fials to load songs : '${e.message}'.");
}
}
else{
//I want to exit App Now.Cause setState depends upon allsongs
}
}
loading= false;
print(allsongs);
if (!mounted) return;

setState((() {
songS = new Songs(new List.from(allsongs));
}));
}



@override
void dispose() {
// TODO: implement dispose
super.dispose();
songS.audioPlayer.stop();
}
@override
Widget build(BuildContext context) {
return new playerstate(allsongs,loading,new mainView());
}

}

我该怎么做才能实现它?我只是新手。感谢您的帮助。

虽然 SimplePermission 是一个很棒的 flutter plugin

最佳答案

import 'dart:io';

class StartPlayer extends StatefulWidget{
@override
appState createState() => new appState();

}
class appState extends State<StartPlayer>{

String _platformVersion = 'Unknown';
Permission permission;
Songs songS;
bool loading = true;
var allsongs;

@override
void initState() {
// TODO: implement initState
super.initState();
initPlatformState();
}

initPlatformState() async {

loading = true;
String platformVersion;
try {
platformVersion = await SimplePermissions.platformVersion;
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
bool chkperm = await SimplePermissions.checkPermission(permission);
if(chkperm) {
try {
allsongs = await methodsMP.allSongs();
} catch (e) {
print("Fials to load songs : '${e.message}'.");
}
}
else{
bool reqperm = await SimplePermissions.requestPermission(permission);
if(reqperm){
try {
allsongs = await methodsMP.allSongs();
} catch (e) {
print("Fials to load songs : '${e.message}'.");
}
}
else{
//I want to exit App Now.Cause setState depends upon allsongs
exit(0); // or non-zero for some error code
}
}
loading= false;
print(allsongs);
if (!mounted) return;

setState(() {
songS = new Songs(new List.from(allsongs));
});
}



@override
void dispose() {
// TODO: implement dispose
super.dispose();
songS.audioPlayer.stop();
}
@override
Widget build(BuildContext context) {
return new playerstate(allsongs,loading,new mainView());
}

}

关于Flutter 以编程方式关闭应用程序,但来自 appState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51197441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com