В Android 10 есть ограничение на запуск действий из фона. Я работаю над приложением для звонков по Voip. Итак, из-за этого ограничения я начал Activity из службы через ожидающее намерение. Каждый раз, когда пользователь нажимает «Ответить» в уведомлении Heads up, я перенаправляю его на указание c активности.
Моя проблема в том, что после нажатия на действие «Ответить» в уведомлении действие не запускается быстро. Сначала виден белый экран, а затем загрузка. Из-за этого продолжительность разговора для абонентов A и B отличается. Кроме того, загрузка активности вызова после задержки не является хорошей.
В WhatsApp, как только я нажимаю «Ответить», сразу же запускается активность, тем временем продолжительность вызова также начинается. Так что это действительно хорошо. Я не сталкивался с задержкой загрузки и таймера продолжительности звонка в WhatsApp.
Как я могу добиться этого в моем приложении. Помогите мне с этим.
- При тапе ответить сразу ставит статус PJSIP_SC_OK. (Отправка 200 OK)
- Другой человек ответит ответом 200 OK.
- После этого состояние вызова будет изменено и захвачено, и отправлено в какой-то другой класс для обработки.
- Передача необходимого сообщения Activity с помощью обработчика.
- Действие, которое получило сообщение, будет обрабатываться в соответствии с этим.
- Если действие получило подтвержденное сообщение для вызова, то только экран настройки для подключенного вызова состояние, а затем запуск таймера ....
Время, необходимое для запуска таймера на экране подключенного вызова после первого шага, упомянутого выше, составляет 1 хх секунд (Android 10) и 2 секунды (Android 8).
В Activity onCreate я делаю следующие работы перед показом макета:
- Настройка видимости представлений, настройка изображения, а также использование Bitmap для изменения размера изображения. При тестировании обнаружено, что для обработки Activity Oncreate в версии Oreo требуется 0,65 секунды, тогда как в версии Q требуется всего 0,27 секунды. Не только oreo, но и в некоторых более старых версиях.
Вот почему у меня разница во времени ... Что мне делать ??
Как только пользователь нажимает ответ в уведомлении, мне нужно показывать экран подключенного вызова без задержки и без белого экрана. WhatsApp может достичь этого. Итак, как я могу добиться этого в моем приложении для звонков по VoIP ??