Flutter — программный выход из приложения
В этой статье мы увидим, как программно закрыть приложение Flutter. SystemNavigator.pop(): работает и является РЕКОМЕНДУЕМЫМ способом выхода из приложения. exit(0): также работает, но НЕ РЕКОМЕНДУЕТСЯ, так как он немедленно завершает процесс Dart VM, и пользователь может подумать, что приложение только что разбилось. Пример видео приведен ниже, чтобы получить представление о том, что мы собираемся делать в этой статье.
Как использовать?
С помощью системного навигатора:
SystemChannels.platform.invokeMethod("SystemNavigator.pop");
Использование выхода:
exit(0);
Пошаговая реализация
Шаг 1. Создайте новый проект в Android Studio.
Чтобы настроить Flutter Development в Android Studio, обратитесь к разделу «Настройка Android Studio для разработки Flutter», а затем создайте новый проект в Android Studio, пожалуйста, обратитесь к разделу «Создание простого приложения во Flutter».
Шаг 2: Импорт пакета материалов
Добавление пакета материалов, который дает нам важные функции и вызывает метод runApp в основной функции, которая будет вызывать наше приложение.
import "package:flutter/material.dart"; void main() { runApp(RunMyApp()); }
Шаг 3: Создание виджета без сохранения состояния
Теперь нам нужно сделать виджет без состояния, потому что наше приложение не изменяет свое состояние, а затем возвращает виджет materialApp, который позволяет нам установить заголовок, тему и многое другое.
class RunMyApp extends StatelessWidget { const RunMyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp(); } }
Шаг 4: Создание виджета Scaffold
Дайте свойство home, и может появиться виджет скаффолда со свойствами AppBar и body . Кроме того, AppBar позволяет нам указать заголовок AppBar, цвет, начальный и конечный значок. А тело принимает виджет или класс.
home: Scaffold( appBar: AppBar( title: Text("Exit from the App"), ), body: Center(); ),
Шаг 5: Центральный виджет имеет дочерний столбец. Столбец позволяет нам установить его дочерние элементы, две приподнятые кнопки, которые вызывают уважаемые методы cliseAppUsingSystemPop и closeAppUsingExit .
Окончательный код
Dart
import "dart:io" ; import "package:flutter/material.dart" ; import "package:flutter/services.dart" ; void main() { runApp(RunMyApp()); } class RunMyApp extends StatelessWidget { const RunMyApp({super.key}); void closeAppUsingSystemPop() { SystemChannels.platform.invokeMethod( "SystemNavigator.pop" ); } void closeAppUsingExit() { exit (0); } @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false , theme: ThemeData(primarySwatch: Colors.green), home: Scaffold( appBar: AppBar( title: Text( "Exit From the App" ), ), body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ ElevatedButton( onPressed: () { closeAppUsingSystemPop(); }, child: Text( "Exit using System Navigator" )), ElevatedButton( onPressed: () { closeAppUsingExit(); }, child: Text( "Exit using Exit 0" )), ], )), ), ); } } |