Я заметил следующее странное поведение, когда мой GLThread выполняет интенсивную работу.
Запустите приложение и дождитесь, пока GLThread выполнит интенсивную задачу.Отправка приложения в фоновый режим. Отправка push-уведомления из firebase. Подождите, пока не появится ANR (поскольку приложение не может активировать службу уведомлений)
Если вместо отправки приложения в фоновый режим я просто подожду с приложением на переднем плане,уведомление приходит, а ANR не отображается.
Теоретически GLThread не является основным потоком, поэтому я мог бы выполнять любую работу там без получения ANR.
Вымой проект можно найти здесь: https://issuetracker.google.com/issues/113119768
Чтобы воспроизвести мою "интенсивную работу", я просто поместил бесконечный цикл в функцию onDrawFrame
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
while(true)
{
Log.e("GLThread", "draw");
}
}
Любая помощь будет очень признательна.