(我在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/