Я создаю приложение, которое отправляет уведомления пользователю, даже если приложение было удалено из процесса или в фоновом режиме. На самом деле в версиях Android с SDK> = 26 я использую службы переднего плана. Для отображения уведомлений у меня есть служба (DatasNotification), которая запускает asyncTask (HttpRequest) для выполнения http-запроса, а asynctask в конце условий запускает новую службу, которая показывает уведомление. Когда мое приложение работает в фоновом режиме, у меня появляется системное уведомление, в котором говорится: мое приложение разряжает батарею. Во время анализа я понял, что это системное уведомление генерируется сервисом DatasNotification.
Это мой код DatasNotification:
@Override
public void onCreate() {
super.onCreate();
Fabric.with(this, new Crashlytics());
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
startForeground(1, new Notification());
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
new HttpRequest(getApplicationContext(), 0).execute();
return START_STICKY;
}
Есть ли какое-либо решение для запуска фоновой службы в sdk> = 26