Ответ 1
У меня была эта проблема, потому что я вызывал функции activity.recreate() (или .finish() и .startActivity() - в зависимости от версии Android). Конечно, вы будете называть эти функции только потому, что хотите перезагрузить язык, reset ориентацию и подобные вещи, которые вы можете делать только с активным отдыхом.
Вы не можете вызывать эти функции (.finish() или .recreate()) из onResume(). Если вы это сделаете, вы получите упомянутое нефатальное исключение.
Я "решил" проблему, задерживая вызов .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);