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

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

“java.lang.RuntimeException:执行未被恢复的活动的暂停”

我开发了一个游戏应用程序(使用普通视图和GLSurfaceView)。 如果我打开和closures手机显示的速度非常快,我可能会导致此exception(由ActivityThread引发),但是我的应用程序在exception后正常运行。 我的应用程序是一个横向的,这也正确地在清单中设置(包括方向和configchanges以及)。

这个可以吗?

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

Solutions Collecting From Web of "“RuntimeException:执行暂停的未恢复的活动”"

我刚刚有这个问题,因为我调用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);