Я столкнулся со странной вещью, когда использую TextureView в своей работе. Я реализовал 4 метода SurfaceTextureListener:
onSurfaceTextureAvailable
onSurfaceTextureSizeChanged
onSurfaceTextureDestroyed
onSurfaceTextureUpdated
Сделать это довольно просто, мой код вставлять не нужно.
Нет сомнений, что onSurfaceTextureAvailable будет вызываться при запуске активности, а onSurfaceTextureDestroyed — при уничтожении активности.
Но все изменилось в случае переключения между передним и задним планом.
Для большинства устройств onSurfaceTextureAvailable и onSurfaceTextureDestroyed не вызываются во время переключения переднего и заднего плана.
Но для некоторых устройств, таких как Coolpad 8670 с Android 4.4.2, onSurfaceTextureDestroyed вызывается, когда активность переходит на задний план, а onSurfaceTextureAvailable вызывается, когда активность возвращается на передний план.
Я не знаю почему.
Есть ли способ избежать вызова onSurfaceTextureDestroyed, когда активность переходит в фоновый режим для всех устройств?