android - 在游戏结束时存储数据 Unity

标签 android unity-game-engine android-lifecycle

<分区>

我想在调用 Application.Quit() 方法时准确存储数据。 基本上我想要一种在应用程序生命周期中被调用一次的回调方法,就在应用程序被设备的操作系统杀死时。

在 iOS 中,我设法使用以下代码行:

void OnApplicationQuit()
{

    //if (pauseStatus)
    //{
    DataStorage.StoreLastOpenedDay(DateTime.Now.Day);
    DataStorage.StoreLastOpenedMonth(DateTime.Now.Month);
    DataStorage.StoreLastOpenedYear(DateTime.Now.Year);
    //}
}

但我得到的信息是,在 Android 中,正在运行的 Activity 没有调用 OnApplicationQuit 方法。

那么在 Android 中有什么替代方案可以实现与 iOS 相同的功能呢?我不能使用 OnApplicationPause 方法,因为当您的应用程序运行时发生任何外部进程时,它会被多次调用。电话、应用内购买相关弹出窗口等... 我希望代码仅在应用程序被终止时执行一次。

请分享您对此的建议。

最佳答案

在 Android 上,Application.Quit() 调用 OnApplicationQuit(),但仅从 Unity 运行时内部调用。

这意味着如果您让应用程序在后台暂停,并且操作系统决定终止它,则根本不会调用 OnApplicationQuit()

基本上,为了确保您的应用保存数据,您需要兼顾 OnApplicationPaused()OnApplicationFocus(),但这意味着您不会应用程序的每个生命周期都不能只执行一次保存。

关于android - 在游戏结束时存储数据 Unity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48842338/

相关文章:

java - SkuDetails Response Listener() 中“两种方法都有相同的删除,但都没有覆盖另一个”方法冲突错误

java - 将秒从天文钟转换为整数

java - 在 Android 中实现 AES 加密

Java Google Cloud Endpoints API UTF-8 Unicode 中文字符生成 Android 客户端?

android - 在 Android 上分析游戏 - Unity

unity-game-engine - 以正确的方式复制游戏对象 Unity 5

java - super.onCreate(savedInstanceState) 在第一次运行时崩溃

android - LifecycleRegistry 实例何时开始监听 LifecycleOwner 的生命周期变化?

android - 当 IntentService 启动时,Application 对象会启动吗?

ios - Firebase-Unity 项目 : Exporting for iOS on Windows 10. 解决方法?