3
3

More than 3 years have passed since last update.

【Unity】Androidアプリでバックグラウンドに移行する方法

Posted at

初めに

Unity で実装した Android アプリの話です。
Unity 側でアプリをバックグラウンドに移動させたかっただけなのですが、調べるのに時間がかかったので記事にすることにしました。

動作確認環境

  • Unity 2019.4.13f1

コード

AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
activity.Call<bool>("moveTaskToBack", true);
activity.Dispose();

簡単な解説

初めに、Android ネイティブの機能を使うので、Activity を取得します。
Activity を取得するには、 AndroidJavaClass を使用してUnityPlayerクラスを取得し、そのクラスを使って currentActivityAndroidJavaObject として取得します。

あとは、Activity#moveTaskToBack(true) メソッドを呼ぶだけです。

最後は、状況によりますが AndroidJavaObjectDispose() します。
AndroidJavaObjectIDisposable インターフェイスが実装されているので、アンマネージドリソースになります。
使い終わったら解放しましょう。
using で囲んでもよいかもしれません。

using(AndroidJavaObject activity = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity"))
{
    activity.Call<bool>("moveTaskToBack", true);
}

参考文献

アプリケーションを終了させる - NO_NAME
【Unity】Androidのネイティブの機能を使う
【Unity,C#】外部リソースを使用する時の注意【メモ】 - Blue_Breath_Blog

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3