"RuntimeException:执行暂停未恢复的活动"

Tho*_*alc 24 android screen runtimeexception android-activity

(我在stackoverflow上看到一个类似的问题,但答案并不是真正的答案,问题的上下文也有所不同.)

"java.lang.RuntimeException:执行暂停未恢复的活动"

我开发了一个游戏应用程序(使用普通视图和GLSurfaceView).如果我打开和关闭我的手机显示非常快,我可能会导致此异常有时(由ActivityThread抛出),但我的应用程序异常后正常运行.我的应用程序是横向应用程序,也可以在清单中正确设置(包括方向和配置更改).

这个可以吗?

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

vel*_*lis 51

我刚刚遇到这个问题,因为我正在调用activity.recreate()(或.finish()和.startActivity() - 取决于android版本).当然,您只能调用这些函数,因为您想重新加载语言,重置方向以及您只能通过活动重新创建的类似内容.

但是你不能从onResume()调用这些函数(.finish()或.recreate()).如果这样做,您将收到上述非致命异常.

我通过将.recreate()调用延迟一毫秒来"解决"该问题,以便活动得到正确恢复,然后才被杀死.

  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);
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下'0'超时也会起作用.'0'表示"执行队列结束",这正是我们在这种情况下想要的:) Thx! (4认同)