【发布时间】:2015-03-18 17:04:21
【问题描述】:
我在 Android 上使用 libgdx 编写了一个游戏。当我的应用程序崩溃时,我仍然可以听到音乐播放。我想我忘了处理一些东西。 我使用 assetsmanager 来加载我的资源。我将游戏类中的assetsmanger dispose函数称为它的dispose函数。我认为它应该停止音乐并处理它。
我做错了什么?
【问题讨论】:
标签: android crash libgdx dispose
我在 Android 上使用 libgdx 编写了一个游戏。当我的应用程序崩溃时,我仍然可以听到音乐播放。我想我忘了处理一些东西。 我使用 assetsmanager 来加载我的资源。我将游戏类中的assetsmanger dispose函数称为它的dispose函数。我认为它应该停止音乐并处理它。
我做错了什么?
【问题讨论】:
标签: android crash libgdx dispose
最初的建议是使用“onPause”、“onStop”、“onDestroy”等生命周期方法释放资源,但是,因为在某些特定情况下,例如应用程序崩溃并且出于任何原因您只是没有机会释放资源,还有最后一个资源可以使用:
public class MyApplication extends Application
{
public void onCreate ()
{
Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
{
@Override
public void uncaughtException (Thread thread, Throwable e)
{
//Do here whatever you want to do when the app crashes
}
});
}
}
“Thread.UncaughtExceptionHandler”让您有机会在传播异常而没有在堆栈的任何级别处理时获得回调,因此,它让您有机会执行诸如“将崩溃记录到服务器”之类的操作" 或者在您的情况下,您也许可以使用它来释放一些额外的资源。
希望对你有帮助!
问候!
【讨论】: