मैं प्रोग्राम को फ़्लटर एप्लिकेशन को कैसे बंद कर सकता हूं। मैंने केवल स्क्रीन को पॉप करने की कोशिश की है, लेकिन इसका परिणाम काली स्क्रीन है।
जवाबों:
SystemNavigator.pop()
: काम नहीं करता है
exit(0)
: काम करता है, लेकिन ऐप्पल प्रोग्राम से बाहर निकलने के लिए ऐप्पल ह्यूमन इंटरफेस दिशानिर्देशों के खिलाफ है क्योंकि ऐप्पल आपके ऐप को SUSPEND कर सकता है ।
SystemNavigator.pop()
: काम करता है और है अनुशंसित एप्लिकेशन बाहर निकलने के रास्ते।
exit(0)
: इसके अलावा काम करता है लेकिन यह विश्वसनीय नहीं है क्योंकि यह डार्ट वीएम प्रक्रिया को तुरंत समाप्त कर देता है और उपयोगकर्ता सोच सकता है कि ऐप बस दुर्घटनाग्रस्त हो गया।
exit(0)
अपनी जरूरत के लिए कोशिश कर सकते हैं ।
SystemNavigator.pop()
मेरे ऐप से बाहर निकलता है और दुर्घटना का एक संदेश दिखाता है, exit(0)
उम्मीद के
नीचे दोनों में मेरे साथ पूरी तरह से काम किया Android
और iOS
, मैं से इस्तेमाल exit(0)
कियाdart:io
import 'dart:io';
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new ... (...),
floatingActionButton: new FloatingActionButton(
onPressed: ()=> exit(0),
tooltip: 'Close app',
child: new Icon(Icons.close),
),
);
}
अद्यतन जनवरी 2019 पसंदीदा समाधान है:
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
t work for me... I
क्यूपर्टिनोटैबकैफोल्ड के लिए एक निकास बटन जोड़ने की कोशिश नहीं कर रहा था। के साथ () => निकास (0), यह टैबबार के साथ एक रिक्त स्क्रीन देता है।
आप इसके साथ कर सकते हैं SystemNavigator.pop()
।
exit(0);
काम करता है
SystemNavigator.pop
नजरअंदाज कर दिया जाता है क्योंकि Apple के मानव इंटरफ़ेस दिशानिर्देश बताते हैं कि अनुप्रयोगों को खुद से बाहर नहीं निकलना चाहिए। एंड्रॉइड पर, इसे काम करना चाहिए, और कॉलिंग dart:io
एग्जिट विधि से अधिक पसंद किया जाता है । एक मुद्दे को दर्ज करने पर विचार करें: github.com/flutter/flutter/issues/new
उत्तर पहले से ही दिए गए हैं, लेकिन कृपया अपने कोड आधार में उन पेस्ट को कॉपी न करें, जो यह जानते हुए कि आप क्या कर रहे हैं:
यदि आप SystemChannels.platform.invokeMethod('SystemNavigator.pop');
ध्यान दें कि डॉक्टर स्पष्ट रूप से उल्लेख कर रहे हैं:
सिस्टम नेविगेटर को निर्देश देता है कि वह इस गतिविधि को स्टैक से हटाए और पिछली गतिविधि पर वापस लौटे।
IOS पर, इस पद्धति की कॉल को अनदेखा कर दिया जाता है क्योंकि Apple के मानव इंटरफ़ेस दिशानिर्देश बताते हैं कि अनुप्रयोगों को स्वयं से बाहर नहीं निकलना चाहिए।
आप उपयोग कर सकते हैं exit(0)
। और वह दिए गए निकास कोड के साथ डार्ट वीएम प्रक्रिया को तुरंत समाप्त कर देगा। लेकिन याद रखें कि डॉक्टर कहते हैं:
यह किसी भी अतुल्यकालिक संचालन के समाप्त होने की प्रतीक्षा नहीं करता है। इसलिए बाहर निकलने का उपयोग करने से डेटा खोने की बहुत संभावना है।
वैसे भी डॉक्टर ने भी नोट किया SystemChannels.platform.invokeMethod('SystemNavigator.pop');
:
इस पद्धति को कॉलिंग डार्ट से अधिक पसंद किया जाना चाहिए: io का निकास विधि, जैसा कि बाद वाला अंतर्निहित प्लेटफॉर्म कार्य करने का कारण हो सकता है जैसे कि अनुप्रयोग क्रैश हो गया था।
इसलिए, याद रखें कि आप क्या कर रहे हैं।
मैं उपयोग करना पसंद करता हूं
Future.delayed(const Duration(milliseconds: 1000), () {
SystemChannels.platform.invokeMethod('SystemNavigator.pop');
});
हालाँकि, एग्जिट (0) भी काम करता है लेकिन ऐप अचानक बंद हो जाता है और अच्छा नहीं लगता है, ऐसा लगता है कि ऐप क्रैश हो गया है।
Future.delayed(const Duration(milliseconds: 1000), () {
exit(0);
});
इसने मेरे लिए काम किया;
import 'dart:io';
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new ... (...),
floatingActionButton: new FloatingActionButton(
onPressed: ()=> exit(0),
tooltip: 'Close app',
child: new Icon(Icons.close),
),
);
}
नीचे मेरे साथ एंड्रॉइड और iOS दोनों आयात 'डार्ट: io' में पूरी तरह से काम किया गया;
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: new AppBar(
title: new Text(widget.title),
),
body: new ... (...),
floatingActionButton: new FloatingActionButton(
onPressed: ()=> SystemNavigator.pop(),
tooltip: 'Close app',
child: new Icon(Icons.close),
),
);
}
SystemNavigator.pop()
iOS में काम नहीं करता, कृपया मेरा उत्तर पढ़ें। कम से कम आज के रूप में iOS ऐप में बाहर निकलने का कोई तरीका नहीं है।
SystemNavigator.pop()
एंड्रॉइड एमुलेटर के तहत काम नहीं कर रहा है। ऐप अभी भी बैकग्राउंड में काम कर रहा है। इसलिए मुझे यकीन नहीं है कि यह वास्तविक डिवाइस पर ठीक से काम करेगा।