在比赛结束时间存储数据Unity

时间:2018-02-17 14:26:47

标签: android unity3d unity5 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中,OnApplicationQuit方法没有被正在运行的活动调用。

那么Android中用于实现与iOS相同的东西的替代方案是什么?我无法使用OnApplicationPause方法,因为当应用程序运行时,任何外部进程都会被多次调用。电话,在应用程序购买相关的弹出窗口等... 我希望代码在应用程序被杀时只执行一次。

请分享您对此的建议。

1 个答案:

答案 0 :(得分:3)

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

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

基本上,为了确保您的应用保存数据,您需要与OnApplicationPaused()OnApplicationFocus()进行交互,但这意味着您无法执行每个应用程序的生命周期保存一次。