Служба запускается через некоторое время в BootCompleteReceiver? - PullRequest
0 голосов
/ 09 мая 2018

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

Все отлично работает! Я добавил BootCompleteReceiver для запуска сервиса при загрузке телефона! Но я сталкиваюсь с проблемой, что, когда пользователь перезагружает систему, требуется некоторое время, чтобы запустить службу! Таким образом, в указанное время пользователь может совершать любые звонки

Как я могу справиться с этой проблемой! Пожалуйста, предложите метод!

Код:

public class BootCompleteReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                    context.startForegroundService(new Intent(context, CallService.class));
                    //Util.scheduleJob(context);
                } else {
                    context.startService(new Intent(context, CallService.class));
                }
        }
    }
}

1 Ответ

0 голосов
/ 09 мая 2018

Поскольку может быть много приложений, которые будут регистрироваться для этой трансляции, может быть небольшая задержка при получении намерения в вашем приложении. Однако скорость зависит от нескольких факторов, таких как скорость процессора устройства, объем системной памяти устройства и т. Д.

Поскольку поведение находится вне вашего контроля, лучшее, что вы можете сделать, это установить приоритет для получателя в вашем AndroidManifest.xml следующим образом:

 <action android:name="android.intent.action.BOOT_COMPLETED" android:priority="999"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...