Ответ здесь показывает выход из приложения через Widget.
Я хочу знать, смогу ли я выйти из initPlatformState(){...}
Специально для моего случая у меня есть ответ bool в initPlatformState(){...}
, т.е. bool reqperm = await SimplePermissions.requestPermission(permission);
Я хочу, чтобы, если reqperm имеет значение false, приложение закрывалось.
Полный код:
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 - потрясающий флаттер плагин