我想在调用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方法,因为当应用程序运行时,任何外部进程都会被多次调用。电话,在应用程序购买相关的弹出窗口等... 我希望代码在应用程序被杀时只执行一次。
请分享您对此的建议。
答案 0 :(得分:3)
在Android上,Application.Quit()
调用OnApplicationQuit()
,但仅限于Unity运行时内。
这意味着如果您在后台暂停了应用程序,并且操作系统决定将其终止,则根本不会调用OnApplicationQuit()
。
基本上,为了确保您的应用保存数据,您需要与OnApplicationPaused()
和OnApplicationFocus()
进行交互,但这意味着您无法执行每个应用程序的生命周期保存一次。