【问题标题】:What is the correct way to dispose of objects when android app crashes?android应用程序崩溃时处理对象的正确方法是什么?
【发布时间】:2015-03-18 17:04:21
【问题描述】:

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

我做错了什么?

【问题讨论】:

    标签: android crash libgdx dispose


    【解决方案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”让您有机会在传播异常而没有在堆栈的任何级别处理时获得回调,因此,它让您有机会执行诸如“将崩溃记录到服务器”之类的操作" 或者在您的情况下,您也许可以使用它来释放一些额外的资源。

    希望对你有帮助!

    问候!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-20
      • 2011-09-23
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多