android - "RuntimeException: Performing pause of activity that is not resumed"

标签 android screen android-activity runtimeexception

(我在stackoverflow上看到了一个类似的问题,但那里的答案不是真正的答案,而且问题的上下文也有点不同。)

“java.lang.RuntimeException:正在执行未恢复的 Activity 暂停”

我开发了一个游戏应用程序(它使用普通 View 和 GLSurfaceView)。如果我快速打开和关闭手机显示屏非常,我有时会导致此异常(由 ActivityThread 引发),但我的应用程序在异常后正常运行。我的应用是横向应用,并且在 list 中也正确设置(包括方向和配置更改)。

这样好吗?

这是我的应用程序名称下的 ActivityThread 抛出的 RuntimeException,但它不会终止我的应用程序。

最佳答案

我刚刚遇到了这个问题,因为我正在调用 activity.recreate()(或 .finish() 和 .startActivity() - 取决于 android 版本)。 当然,您只会调用这些函数,因为您想重新加载语言、重置方向和类似的事情,而这些事情只能通过 Activity 娱乐来完成。

您不能从 onResume() 调用这些函数(.finish() 或 .recreate())。 如果这样做,您将收到提到的非致命异常。

我通过将 .recreate() 调用延迟一毫秒来“解决”了这个问题,以便 Activity 正确恢复,然后才被终止。

  Handler handler = new Handler();
  handler.postDelayed(new Runnable()
  {
    @Override
    public void run()
    {
      log.i("TX.refresh", "Switching to %s from %s", lang, lang);
      if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB)
      {
        ctx.finish();
        ctx.startActivity(ctx.getIntent());
      } else ctx.recreate();
    }
  }, 1);

关于android - "RuntimeException: Performing pause of activity that is not resumed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10844112/

相关文章:

java - 三个按钮,每个按钮都使用不同的 Int 启动相同的 Activity。但是当选择任何按钮时,它会加载所有 3 个 Activity

安卓 : How to get the dirty(changed) properties

android - Android 上设置操作按钮图标的名称是什么?

Android 从图库中选择图片

android - 如何使 ProgressDialog 可以通过后退按钮而不是通过屏幕点击取消?

c++ - 帮助 FFT(快速傅里叶变换)和/或 DSP

java - 如何从 Android 中的服务调用一个 Activity 的方法?

java - 如何使用lxml更改android xml文件中的属性值,例如 "android:text"

html - 我如何在我的导航栏中更改它以及如何更改代码以使其适合任何屏幕?

android - Intent 值未传递回启动 Activity