当Android应用程序崩溃时,处理对象的正确方法是什么?

时间:2015-03-18 17:04:21

标签: android crash libgdx dispose

我在Android上使用libgdx编写了一款游戏。当我的应用程序崩溃时,我仍然可以听到音乐播放。我想我忘了丢弃一些东西。 我使用assetsmanager来加载我的资源。我在其配置功能中称游戏类中的assetsmanger dispose函数。我认为它应该停止音乐并处理它。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

最初的建议是使用生命周期方法释放资源,例如“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”使您有机会在传播异常时获得回调,而无需在堆栈的任何级别进行处理,因此,它使您有机会执行“将崩溃记录到服务器”等操作“或者在您的情况下,您可以使用它来释放一些额外的资源。

希望它有帮助!

问候!