[Flutter]アプリを強制終了させる方法(SystemNavigator.pop【Androidのみ】)

このページには広告が含まれる場合があります。

 

Flutterでは、「Navigator」というクラスが画面遷移の役割を担っており、Navigator.popメソッドを使うと、前の画面に戻ることができます。

Flutterにおける画面遷移の方法(Navigatorのpush・pop・pushReplacement)を説明したスライド

ところが、自分以外の画面がない状態(上の画像でいうと「HomeScreen」のみが開いている状態)でこのNavigator.popメソッドを使うと、アプリが閉じるのかと思いきや、画面が真っ黒になってしまいます。

ホーム画面でNavigator.popを使うと、アプリが閉じずに画面が真っ黒になる

これは、画面(上記の例でいうとHomeScreen)が閉じられた段階で、アプリ全体を表すMyAppクラスが残るからです(下記画像の①の部分)。

画面を閉じても、アプリ全体を表すMyAppクラスが残ることを示した図

では、アプリそのものを閉じたい(強制終了したい)場合はどうしたらいいのか言うと、Navigator.popメソッドではなく、SystemNavigator.popメソッドを使うことで実現できます。

SystemNavigator.popを使うと、ボタンを押したときにアプリが閉じる

 

ただし、これはAndroidのみで使えるメソッドで、iOSの場合は使えないようです。アプリの強制終了を禁じているAppleのガイドラインに違反するからだそうです。

On iOS, calls to this method are ignored because of Apple’s human interface guidelines state that applications should not exit themselves.

(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)

こんな記事も読まれています

【無料】生年月日を入力するだけ!

あなたの知らない「あなた」がわかる
無料診断ツール

あすコロ式
使命・性格タイプ診断

生年月日を入力するだけで144通りの性格パターンを診断。あなたの知らない「本当のあなた(生きる目的・使命)」と「偽りのあなた(無意識の思いグセ)」がわかります!

今すぐ無料で診断する ▶

TOP