Flutter — программный выход из приложения

Опубликовано: 20 Февраля, 2023

В этой статье мы увидим, как программно закрыть приложение 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")),
          ],
        )),
      ),
    );
  }
}

Выход