Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 25.03.2017
Сообщений: 79

Как сделать не завершающий фоновый процесс

20.01.2019, 10:55. Показов 6159. Ответов 4

Студворк — интернет-сервис помощи студентам
Имею проблему нужно чтобы служба приложении работала в фоновом режиме и показывала оповещения даже когда пользователь удалил его из перечня запущенных программ. Пользовался такими приложениями знаю, что такое возможно но как. У меня оповещения показывает только когда приложение активно или свернутое. Что нужно изменить или добавить в коде?
Запускаю приложение на xiaomi redmi note 4x Andoird 7.0(API 24)

YourService.java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class YourService extends Service {
 
    private static final int NOTIF_ID = 1;
    private static final String NOTIF_CHANNEL_ID = "Channel_Id";
 
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
 
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
 
        startForeground();
 
        return super.onStartCommand(intent, flags, startId);
    }
 
 
    private void startForeground() {
        Intent notificationIntent = new Intent(this, MainActivity.class);
 
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
                notificationIntent, 0);
 
        startForeground(NOTIF_ID, new NotificationCompat.Builder(this,
                NOTIF_CHANNEL_ID) 
                .setOngoing(true)
                .setSmallIcon(R.drawable.ic_launcher_background)
                .setContentTitle(getString(R.string.app_name))
                .setContentText("Service")
                .setContentIntent(pendingIntent)
                .build());
    }
}
App.java
Java
1
2
3
4
5
6
7
8
9
public class App extends Application {
 
    @Override
    public void onCreate() {
        super.onCreate();
 
        startService(new Intent(this, YourService.class));
    }
}
AndroidManifest.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.user1.yourservice">
    <uses-permission android:name="android.permission.INTERNET" />
 
    <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
 
        <service
            android:name=".YourService"
            android:enabled="true"
            android:exported="true"></service>
    </application>
 
</manifest>
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.01.2019, 10:55
Ответы с готовыми решениями:

Фоновый процесс, который дожен регулярно уведомлять текущую активность
Задача такая. Есть некий фоновый процесс, который должен регулярно слать уведомления текущей активности, о ряде событий, которые могут...

Как запустить фоновый процесс (daemon)
Пытаюсь запустить процесс на Java в фоновом режиме. С помощью Runtime.getRuntime() получаю ссылку на процесс и закрываю InputStream,...

Как создать постоянный фоновый процесс в ASP.NET Core MVC?
Как мне в моём ASP.NET Core MVC приложении создать некоторый процесс, компонент, который запускается при старте сервера, и постоянно...

4
0 / 0 / 0
Регистрация: 04.02.2015
Сообщений: 2
20.01.2019, 11:27
То есть, если я правильно понял, ты хочешь чтобы твой сервис работал даже пользователь сам его убьет.
Ну первое что пришло на ум, это запускать сервис каждую минуту, с помощью BroadcastReceiver. Есть там такое намерение android.intent.action.TIME_TICK
Сам не пробовал, но интересно сработает или нет?
0
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 164
24.01.2019, 13:28
Я в своем приложении делал отдельный поток и все работало прекрасно, но с появлением ANDROID O все стало еще сложнее. Дело том что гугл сделал ограничение на работу фоновых служб а именно, теперь длительно работающие процессы должны быть видны пользователю то есть всегда будет висеть уведомление в трее или система его через несколько секунд убьет. Другими словами все конечно работает если это сделать но висящий значок немного напрягает.

https://habr.com/ru/company/kaspersky/blog/334652/
0
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
25.01.2019, 21:49
Цитата Сообщение от leonardo666 Посмотреть сообщение
будет висеть уведомление в трее или система его через несколько секунд убьет. Другими словами все конечно работает если это сделать но висящий значок немного напрягает.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class HideNotificationService extends Service {
 
    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    @Override
    public void onCreate() {
        Notification.Builder builder = new Notification.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher);
        Notification notification;
        if (Build.VERSION.SDK_INT < 16)
            notification = builder.getNotification();
        else
            notification = builder.build();
 
        startForeground(777, notification);
        stopForeground(true);
    }
 
}
777 это код с которым запущен нотификэйшн.
0
-12 / 9 / 0
Регистрация: 15.02.2013
Сообщений: 92
30.01.2019, 16:21
Может быть, при помощи AlarmManager установить будильник (setRepeating) для своего BroadcastReceiver, с повтором в минуту к примеру. Даже если пользователь остановит процесс, он повторно будет создан при срабатывании будильника.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2019, 16:21
Помогаю со студенческими работами здесь

Как форму при нажатии на красную кнопку отправить в фоновый процесс?
...

Как запустить программу как фоновый процесс
Здравствуйте! Нужно написать программу, которая будет запускаться как фоновый процесс, то есть фактически без открытия консоли. Например:...

Фоновый процесс
Здравствуйте. Как сделать так, чтобы приложение после сворачивания в трей (само сворачивание уже есть) в Диспетчере задач отображалось не...

Фоновый процесс в bitrix
САБЖ, хотелось бы узнать как реализовать сие в битриксе.

Основной и фоновый процесс
Есть основной процесс, который работает в интерфейсе программы (WinForms), и есть фоновый BackgroundWorker. Как фоновый процесс может дать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru