В моем приложении я запускаю службу переднего плана и показываю диалог прогресса, чтобы обновить пользователя о прогрессе.На некоторых телефонах запуск службы переднего плана приводит к задержке пользовательского интерфейса на несколько секунд.Если я отключаю следующий код, пользовательский интерфейс отвечает нормально.
Код для запуска службы: applicationContext.startService(FirmwareUpdateService.createUpdateActionIntent(applicationContext, progress));
Если я прокомментирую вышеприведенный код, то ничего не зависнет.
Если я прокомментирую логику внутри службы (показывает только уведомление на переднем плане), это не имеет значения.
private void createUpdateNotification(int progress) {
return new Notification.Builder(this) .setContentTitle(getString(R.string.updating)) .setProgress(MAX_PROGRESS, progress, false) .setSmallIcon(R.drawable.push_notif_icon) .build();
}
Notification notification = createUpdateNotification(progress);
startForeground(NOTIFICATION_ID, notification);
Послепервый вызов для запуска службы, последовательные вызовы не замораживают пользовательский интерфейс.Любое понимание приветствуется!