C#
Unity

Unityで作ったAndroidアプリがBackキー押下で終了できない場合の仮対応

More than 1 year has passed since last update.

修正前

これまでは、これで正常終了しているように見えた。

    void Update()
    {
#if UNITY_ANDROID
        // Backキー押下
        if (Input.GetKeyDown(KeyCode.Escape)) {
            // アプリ終了
            Application.Quit();
            return;
        }
#endif
    }

ところが、いつのまにかアプリは非表示になるが残っているようで、
再起動すると動作が不安定になるようになった。

修正内容

System.Diagnostics.Process.GetCurrentProcess().Kill();

を使うと解消するが、マズそうなので別の方法を調査。

Application.Quit()

の前に

Application.runInBackground = false;

を追加すると改善された。

詳細はこちら。
https://docs.unity3d.com/ScriptReference/Application-runInBackground.html

Default is false

って書いてあるので、どこかでtrueに変わってしまっているということかな・・・
根本的な解決にはなってないような気がするけれど、
動作が不安定になるようなことは無くなった。

修正後

こんな感じ。

    void Update()
    {
#if UNITY_ANDROID
        // Backキー押下
        if (Input.GetKeyDown(KeyCode.Escape)) {
            // アプリ終了
            Application.runInBackground = false;
            Application.Quit();
            return;
        }
#endif
    }