在游戏结束时存储数据 Unity
Store data at game closing time Unity
我想在调用 Application.Quit() 方法时准确存储数据。
基本上我想要一种在应用程序生命周期中被调用一次的回调方法,就在应用程序被设备的操作系统杀死时。
使用 iOS,我设法使用以下代码行:
void OnApplicationQuit()
{
//if (pauseStatus)
//{
DataStorage.StoreLastOpenedDay(DateTime.Now.Day);
DataStorage.StoreLastOpenedMonth(DateTime.Now.Month);
DataStorage.StoreLastOpenedYear(DateTime.Now.Year);
//}
}
但我得到的信息是,在 Android 中,OnApplicationQuit 方法没有被 运行 activity 调用。
那么 Android 中存在什么替代方案来实现与 iOS 相同的东西?我不能使用 OnApplicationPause 方法,因为当您的应用程序为 运行 for ex 时发生任何外部进程时,它会被多次调用。 phone 调用、应用内购买相关弹出窗口等...
我希望代码在应用程序被杀死时只执行一次。
请分享您对此的建议。
在 Android 上,Application.Quit()
调用 OnApplicationQuit()
,但仅从 Unity 运行时内部调用。
这意味着如果您让应用程序在后台暂停,并且 OS 决定终止它,则根本不会调用 OnApplicationQuit()
。
基本上,为了确保您的应用保存数据,您需要兼顾 OnApplicationPaused()
和 OnApplicationFocus()
,但这意味着您将无法准确执行保存应用程序的每个生命周期一次。
我想在调用 Application.Quit() 方法时准确存储数据。 基本上我想要一种在应用程序生命周期中被调用一次的回调方法,就在应用程序被设备的操作系统杀死时。
使用 iOS,我设法使用以下代码行:
void OnApplicationQuit()
{
//if (pauseStatus)
//{
DataStorage.StoreLastOpenedDay(DateTime.Now.Day);
DataStorage.StoreLastOpenedMonth(DateTime.Now.Month);
DataStorage.StoreLastOpenedYear(DateTime.Now.Year);
//}
}
但我得到的信息是,在 Android 中,OnApplicationQuit 方法没有被 运行 activity 调用。
那么 Android 中存在什么替代方案来实现与 iOS 相同的东西?我不能使用 OnApplicationPause 方法,因为当您的应用程序为 运行 for ex 时发生任何外部进程时,它会被多次调用。 phone 调用、应用内购买相关弹出窗口等... 我希望代码在应用程序被杀死时只执行一次。
请分享您对此的建议。
在 Android 上,Application.Quit()
调用 OnApplicationQuit()
,但仅从 Unity 运行时内部调用。
这意味着如果您让应用程序在后台暂停,并且 OS 决定终止它,则根本不会调用 OnApplicationQuit()
。
基本上,为了确保您的应用保存数据,您需要兼顾 OnApplicationPaused()
和 OnApplicationFocus()
,但这意味着您将无法准确执行保存应用程序的每个生命周期一次。