Получение ошибки при воссоздании () внутри onOptionsItemSelected () в API 23 / Marshmallow

Я пытаюсь сделать свое приложение, отлично работая над API <23, работая над устройством API 23.
В основном, когда пользователь меняет настройку через меню опций, активность воссоздается с помощью функции rereate (). Теперь, если я медленно нажимаю на параметр меню (так что у меня есть время, чтобы увидеть выделенную опцию), все в порядке, но если я коснусь кратковременно, приложение выйдет из строя.
Я знаю, что это странное поведение, и мне было трудно понять, что вызывает ошибку. Я поставил тайм-аут перед воссозданием (), поэтому, возможно, опция «проверена», но это не сработало. Я могу только думать о какой-то ошибке в API 23, потому что раньше она работала с другими API. Вот фрагмент моего кода (ничего особенного):

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_1: //... some code goes here recreate(); return true; // some other options .. } return super.onOptionsItemSelected(item); } 

И logcat:

 10-20 23:12:10.062 3217-3245/? E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab3d1b80 10-20 23:12:11.050 3217-3245/? E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb4013030 10-20 23:12:11.075 3217-3245/? E/Surface: queueBuffer: error queuing buffer to SurfaceTexture, -19 10-20 23:12:11.075 3217-3245/? E/EGL_emulation: tid 3245: swapBuffers(324): error 0x3003 (EGL_BAD_ALLOC) 10-20 23:12:11.075 3217-3245/? A/OpenGLRenderer: Encountered EGL error 12291 EGL_BAD_ALLOC during rendering 10-20 23:12:11.075 3217-3245/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 3245 (RenderThread) 

Любая помощь или совет будут очень оценены.

ОБНОВЛЕНИЕ : я определенно думаю, что в API> 23 есть ошибка. После создания нового проекта с пустой активностью и просто добавления внутри onOptionsItemSelected ()

 if (id == R.id.action_settings) { recreate(); return true; } 

Приложение все еще падает.

Таким образом, мое решение :

  Intent intent = getIntent(); finish(); startActivity(intent); 

Но перезагрузка не такая гладкая, как при воссоздании () (я вижу немного мигающий).

На самом деле это была ошибка. После того, как я сообщил, это было исправлено Google. Это можно сделать здесь: https://code.google.com/p/android/issues/detail?id=195966