আমি কীভাবে প্রোগ্রামিয়ালি কোনও ফ্লার্ট অ্যাপ্লিকেশনটি বন্ধ করতে পারি। আমি একমাত্র পর্দা পপ করার চেষ্টা করেছি তবে এর ফলে একটি কালো স্ক্রিন আসে।
আমি কীভাবে প্রোগ্রামিয়ালি কোনও ফ্লার্ট অ্যাপ্লিকেশনটি বন্ধ করতে পারি। আমি একমাত্র পর্দা পপ করার চেষ্টা করেছি তবে এর ফলে একটি কালো স্ক্রিন আসে।
উত্তর:
SystemNavigator.pop()
: কাজ করে না
exit(0)
: ওয়ার্কস কিন্তু অ্যাপল আপনার অ্যাপ্লিকেশনটিকে সাপেন্ড করতে পারে কারণ অ্যাপ্লিকেশনটি অ্যাপ্লিকেশন থেকে বেরিয়ে আসার জন্য এটি অ্যাপল হিউম্যান ইন্টারফেসের গাইডলাইনগুলির বিরুদ্ধে against
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
অ্যাপল এর মানব ইন্টারফেসের নির্দেশিকাতে অ্যাপ্লিকেশনগুলি তাদের বাইরে বেরোনোর উচিত নয় বলে উপেক্ষা করা হয়েছে। অ্যান্ড্রয়েডে, এটি কাজ করা উচিত এবং এটির dart:io
প্রস্থান পদ্ধতি কল করার চেয়ে বেশি পছন্দ করা হয় । ইস্যু দায়ের করার কথা বিবেচনা করুন: github.com/flutter/flutter/issues/new
উত্তরগুলি ইতিমধ্যে সরবরাহ করা হয়েছে তবে দয়া করে আপনি কী করছেন তা না জেনে আপনার কোড বেসে এগুলি অনুলিপি করুন না:
আপনি যদি SystemChannels.platform.invokeMethod('SystemNavigator.pop');
নোটটি ব্যবহার করেন তবে ডকটি স্পষ্টভাবে উল্লেখ করছে:
সিস্টেম ন্যাভিগেটরকে স্ট্যাক থেকে এই ক্রিয়াকলাপটি সরিয়ে পূর্ববর্তী ক্রিয়াকলাপে ফিরে আসতে নির্দেশ দেয়।
আইওএস-এ, এই পদ্ধতির কলগুলিকে উপেক্ষা করা হয় কারণ অ্যাপলের মানব ইন্টারফেসের নির্দেশিকাতে বলা হয় যে অ্যাপ্লিকেশনগুলি তাদের নিজের থেকে বেরিয়ে আসা উচিত নয়।
আপনি ব্যবহার করতে পারেন 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),
),
);
}
নীচে Android এবং iOS উভয় আমদানি 'ডার্ট: আইও' তে আমার সাথে নিখুঁতভাবে কাজ করেছে;
@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()
আইওএস এ কাজ করে না, দয়া করে আমার উত্তরটি পড়ুন। অন্তত আজকের মতো আইওএস অ্যাপে প্রস্থান করার কোনও উপায় নেই।
SystemNavigator.pop()
অ্যান্ড্রয়েড এমুলেটরের অধীনে কাজ করছে না। অ্যাপ্লিকেশনটি এখনও পটভূমিতে কাজ করছে। সুতরাং এটি সত্যিকারের ডিভাইসে সঠিকভাবে কাজ করবে কিনা তা আমি নিশ্চিত নই।