Android Unity App在后台运行

时间:2017-08-02 06:57:05

标签: java c# android unity3d

我有一个在Android上运行的Unity应用。当应用程序放入后台时,它也会继续运行。它不使用服务在后台运行。相反,这个应用程序创建一个新线程,当应用程序在后台时,该线程继续运行。

最近,我不得不将另一个应用程序的一些代码合并到这个应用程序中。这个其他应用程序有一个活动,我合并到第一个应用程序。

来自不同应用的活动有不同的名称。在我在后台运行的Unity应用程序中,它的活动是“com.unity3d.player.UnityPlayerNativeActivity”我合并的活动是“com.indotraq.android.rtls.MainActivity”,它扩展了UnityPlayerActivity

通过实验,看来如果我的活动不是“com.unity3d.player.UnityPlayerNativeActivity”,我在后台运行的线程就不再执行了。

那么,是否有人有任何想法为什么我的后台线程将不再执行以及我可以做些什么来让它再次执行?

我知道它的另一个选项是编写一个服务,允许我的程序在后台处理信息。这种方法的缺点是我必须将一堆代码从C#重写为Java。而且这些代码中的一些不仅仅是一个简单的端口。我想我必须重写一些Unity低级网络代码才能使用套接字。

那么关于如何进行的任何建议?让我的线程再次运行后台会很棒,所以我不必将一堆C#代码重写为Java。

提前致谢 约翰劳里

1 个答案:

答案 0 :(得分:0)

Android和IOS会忽略RuninBackgorund,您可以看到here

在Android上运行后台的唯一有效方法是通过服务。您可以使用OnApplicationPause方法在游戏暂停/取消暂停时收到通知。

"Hello world \u{1F603}"

Here你有一个很好的关于android和Unity之间沟通的教程