c# - 在 c# 中使用 unity 在简历上重新启动应用程序

标签 c# android unity3d application-restart

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

我用谷歌搜索了几个小时来寻找解决方案。剩下的唯一选择是在应用程序恢复后重新启动应用程序,这样整个应用程序将从头开始运行,因此深度链接将在其中运行。

我尝试在 ios 的 info.plist 中添加“应用程序不在后台运行”属性。它有效但我不能为 android 这样做。

我在 mac 上使用 unity 5.3.1f1 并且函数 void OnApplicationPause void OnApplicationFocus 都不起作用。我手动调试了代码,它没有调用函数。

如果有人能让我知道 unity 或 android 中是否有一种方法可以实现我正在尝试的目标,那将是一个非常大的帮助。谢谢

最佳答案

OnApplicationPauseOnApplicationFocus 是执行此操作的最佳和推荐方法。 OnApplicationPauseOnApplicationFocus 未在 Android 上调用,因为您的一些脚本中可能有 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) {

    }
}

或者:

public class ExampleClass {

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

如果这不能解决您的问题,那么这很可能是一个错误。将 unity 从 5.3.1f1 更新到 5.3.3,因为这是最新版本,可能会解决您的问题。

关于c# - 在 c# 中使用 unity 在简历上重新启动应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35861565/

相关文章:

android - ActionbarSherlock 不工作

unity3d - 无法将 Visual Studio for Mac 调试器附加到 Unity 2020

c# - 如何从与球体相切的点 P 中随机找到向量之一

c# - Vector3.MoveTowards 不工作。它不会移动或显示任何错误

android - Admob 违规消息 Android 应用程序

c# - 比较两个巨大的 CSV 文件以进行更改的最快方法是什么?

c# - 如何将整个字符串与正则表达式匹配?

c# - LINQ:将 SQL WITH 子句转换为 LINQ 和 Entity Framework

c# - protobuf-net 从磁盘流对象

android - 带有 RecyclerView 单击事件的 MotionLayout 仅在第二次单击后才起作用