在c#

时间:2016-03-08 07:35:12

标签: c# android unity3d application-restart

我目前正在开发android和ios平台的统一应用程序。我使用本机编码分别在平台中实现了深层链接。我现在遇到的问题是如果应用程序第一次启动活动而没有从最近的历史记录恢复,则深度链接在android和ios设备中都能很好地工作。如果应用程序最小化,然后如果在网页上单击了深层链接,则应用程序只会恢复但不会传递深层链接数据。我知道这是因为我在void Start()方法中调用了深层链接方法。我试图获取布尔值来检查活动中的数据,并在void Update()方法中重新加载深层链接部分。但它不起作用。

我尝试谷歌数小时寻求解决方案。剩下的唯一选择是重新启动应用程序,如果它已经恢复,那么整个事情将从头开始运行,因此深层链接将在其中运行。

我尝试添加'应用程序不在后台运行' info.plist中的属性为ios.It工作,但我不能为android。

我在mac上使用unity 5.3.1f1而函数void OnApplicationPause void OnApplicationFocus都不适用于它。我手动调试代码,它不调用该函数。

如果有人能告诉我是否有一种统一的方法或者我可以实现我尝试的方法,那将是一个非常大的帮助。谢谢

1 个答案:

答案 0 :(得分:1)

OnApplicationPauseOnApplicationFocus是最佳和推荐的方法。 Android 上未调用OnApplicationPauseOnApplicationFocus,因为您的某些脚本中可能有Application.runInBackground。如果你有的话,删除

此外,要调用OnApplicationPauseOnApplicationFocus,您必须从MonoBehavior继承。您的脚本应如下所示:

public class ExampleClass : MonoBehaviour {

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

而不是:

public class ExampleClass : OTHERCLASS{

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

OR:

public class ExampleClass {

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

如果这没有解决您的问题,那么这可能是一个错误。将 5.3.1f1 的统一性更新为 5.3.3 ,因为这是最新版本,可能会解决您的问题。