我需要在應用程序退出前運行一些清理和拆卸代碼。cocos2d-x?
我已經寫過我的onExit函數,我將在調用Director :: end之前調用它。但是,當用戶通過關閉窗口退出應用程序時,我需要使用此回調。
據我所知,cocos2d :: Application和cocos2d :: ApplicationProtocol都沒有定義任何類型的退出或退出虛擬方法,它可以被覆蓋。
我需要在應用程序退出前運行一些清理和拆卸代碼。cocos2d-x?
我已經寫過我的onExit函數,我將在調用Director :: end之前調用它。但是,當用戶通過關閉窗口退出應用程序時,我需要使用此回調。
據我所知,cocos2d :: Application和cocos2d :: ApplicationProtocol都沒有定義任何類型的退出或退出虛擬方法,它可以被覆蓋。
你可以在實現(void)applicationWillTerminate:(UIApplication *)application
AppController.mm,如果它不是已經在你的科科斯項目實施(在我cocos2d_tests.xcodeproj它已經是),並從那裏打電話給你onExit
功能。
喜歡的東西:
- (void)applicationWillTerminate:(UIApplication *)application {
// call onExit() here, or forward the call to call onExit() :)
}
注意:這僅適用於iOS。據我所知,對於Android而言,並不等同於applicationWillTerminate
。
我看到它在AppController.mm中定義。我不熟悉將Objective-C和C++粘合在一起。我猜它使用反射來查看你的Application類是否有applicationWillTerminate方法;它沒有在任何C++中定義。 – stands2reason
你可以在應用程序中調用任何函數,如下所示:'Application :: GetInstance() - > foo()'在'Application'中實現'foo()'後。您可以在.mm文件中調用C++代碼。 –
您可以將清理放入持有狀態的類的析構函數中。只要它被破壞,你的代碼就會被執行。替代品正在使用'std :: atexit'。 – Petesh