2017-08-02 23 views
0

Androidで動作するUnityアプリがあります。また、アプリがバックグラウンドに置かれても実行され続けます。バックグラウンドで実行するサービスは使用しません。代わりに、このアプリは新しいスレッドを作成し、このスレッドはアプリがバックグラウンドのときに実行され続けます。Android Unityアプリがバックグラウンドで実行中

最近、別のアプリのコードをこのアプリにマージする必要がありました。この他のアプリは、私が最初のアプリにマージしたアクティビティを持っています。

さまざまなアプリのアクティビティには異なる名前があります。バックグラウンドで動作する私のUnityアプリケーションでは、その活動は "com.unity3d.player.UnityPlayerNativeActivity"です。私がマージしている活動はUnityPlayerActivityを拡張する "com.indotraq.android.rtls.MainActivity"です。

実験を通して私の活動が「com.unity3d.player.UnityPlayerNativeActivity」でない場合、バックグラウンドで実行されるスレッドはもはや実行されないように見えます。

だから、私のスレッドがバックグラウンドで実行されなくなり、また実行するために何ができるのですか?

私のプログラムが情報をバックグラウンドで処理することを可能にするサービスを書くために私が認識しているもう1つのオプションです。このアプローチの欠点は、C#からJavaにコードの束を書き直さなければならないことです。また、このコードの一部は単純なポートだけではありません。私はソケットを使用するためにいくつかのUnity低レベルネットワークコードを書き直さなければならないと思います。

今後の進め方についてのアドバイスはありますか?私のスレッドがバックグラウンドで実行されるようにするのはすばらしいことですので、C#コードをJavaに書き直す必要はありません。

おかげで、事前に ジョン・ローリー

答えて

0

RuninBackgorundは、Androidがサービスを通じてである上、あなたがバックグラウンドで実行するhere

だけで効率的な方法を見ることができますどのようにAndroidとiOSのために無視されます。 OnApplicationPauseメソッドを使用すると、ゲームが一時停止/一時停止解除されたときに通知を受け取ることができます。あなたはアンドロイドと団結

間の通信についての素晴らしいチュートリアルを持って

public void OnApplicationPause(bool paused) { 
if(paused) { 
// Game is paused, start service to get notifications 
} else { 
// Game is unpaused, stop service notifications. 
} 

Here

関連する問題