Поведение onSurfaceTextureDestroyed отличается на некоторых устройствах.

Я столкнулся со странной вещью, когда использую TextureView в своей работе. Я реализовал 4 метода SurfaceTextureListener:

onSurfaceTextureAvailable
onSurfaceTextureSizeChanged
onSurfaceTextureDestroyed
onSurfaceTextureUpdated

Сделать это довольно просто, мой код вставлять не нужно.

Нет сомнений, что onSurfaceTextureAvailable будет вызываться при запуске активности, а onSurfaceTextureDestroyed — при уничтожении активности.

Но все изменилось в случае переключения между передним и задним планом.

Для большинства устройств onSurfaceTextureAvailable и onSurfaceTextureDestroyed не вызываются во время переключения переднего и заднего плана.

Но для некоторых устройств, таких как Coolpad 8670 с Android 4.4.2, onSurfaceTextureDestroyed вызывается, когда активность переходит на задний план, а onSurfaceTextureAvailable вызывается, когда активность возвращается на передний план.

Я не знаю почему.

Есть ли способ избежать вызова onSurfaceTextureDestroyed, когда активность переходит в фоновый режим для всех устройств?


person dragonfly    schedule 08.07.2015    source источник
comment
@fadden, пожалуйста, посмотри.   -  person dragonfly    schedule 08.07.2015
comment
FWIW, я не получаю уведомления, когда вы пишете @fadden в комментариях. Я думаю, что система могла отправить их в какой-то момент, но не сейчас. Я нахожу вопросы по ключевому слову.   -  person fadden    schedule 08.07.2015
comment
Я не знаю, почему вы видите разное поведение на разных устройствах. С некоторыми усилиями можно сохранить SurfaceTexture при перезапуске Activity. Вы можете найти пример в двойном декодировании Grafika Activity, который предпочитает сохранять их при изменении ориентации, но не при переходе приложения в фоновый режим.   -  person fadden    schedule 08.07.2015
comment
Я обнаружил, что onSurfaceTextureDestroyed также вызывается на htc m8w с android 5.0.1 и nexus 6 с android 5.0.1 в случае переключения переднего плана и фона. Я предполагаю, что, возможно, это особенность более высоких платформ Android.   -  person dragonfly    schedule 09.07.2015
comment
@fadden не лучший способ связаться с вами, есть ли другие способы? У вас есть идентификаторы, такие как google, msn.....?   -  person dragonfly    schedule 09.07.2015
comment
Если вы пометите вопрос одним из тегов, которые я смотрю, я найду его. Если набор релевантных тегов для вопроса не совпадает с тегами, которые я смотрю, то, вероятно, я не знаю ответа.   -  person fadden    schedule 09.07.2015
comment
Я посетил ваш профиль SO, но не смог найти теги, которые вы просматриваете. Где они? Кстати, взгляните на это: stackoverflow.com/questions/31317503/   -  person dragonfly    schedule 10.07.2015
comment
@fadden Пожалуйста, взгляните на это: stackoverflow.com/questions/31509201/   -  person dragonfly    schedule 20.07.2015