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")), ], )), ), ); }} |