На Android, как долго я должен отвечать (и на что?), Прежде чем быть убитым?

На Android я понимаю, что если вы не будете реагировать на определенные события из операционной системы в течение некоторого таймаута, он посчитает ваше приложение висевшим и предложит пользователю его убить.

Поэтому мой первый вопрос: что конкретно это такое? Я бы предположил такие вещи, как Activity.onPause , View.onTouchEvent , SurfaceHolder.Callback.surfaceCreated и т. Д.? Есть ли список? Или это просто каждый обратный вызов, который поступает из ОС?

(Или, возможно, это реализовано так же, как часто внутри очереди сообщений потока внутри?)?

И мой второй вопрос: как долго длится тайм-аут?

    Если в течение 5 секунд ответа нет, пользователь получает «приложение не отвечает на экран». Как я вижу, вам нужно ответить на все, что работает в основном потоке, через 5 секунд, иначе пользователю будет предложено убить ваше приложение.

    Хуже того, если поток пользовательского интерфейса заблокирован более чем на несколько секунд (около 5 секунд в настоящее время), пользователю предоставляется печально известное диалоговое окно «приложение не отвечает» (ANR).

    Источник