когда приложение свёрнуто. Мне исключительно для уведомлений надо.
вот так у меня в app
Intent i = new Intent(getApplicationContext(), MyFirebaseMessagingService.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
getApplicationContext().startForegroundService(i);
} else {
getApplicationContext().startService(i);
}
а в самом процессе
if (Build.VERSION.SDK_INT >= 26) {
NotificationChannel channel = new NotificationChannel(CHANNEL_ID,
"appname",
NotificationManager.IMPORTANCE_HIGH);
channel.setShowBadge(false);
((NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE)).createNotificationChannel(channel);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID).build();
startForeground(364, notification);
}
но в итоге от приложения висит постоянное уведомление "Приложение запущено" и это бесит пользователей. Но ведь другие приложения не показывают такое постоянное уведомление. Иначе б висело куча постоянных уведомлений от вацапа, вк, фейсбука и т.д. Как сделать также? Как убрать постоянное уведомление? я это всё добавил потому что иначе куча ошибок Context.startForegroundService() did not then call Service.startForeground()
https://stackoverflow.com/questions/44425584/context-startforegroundservice-did-not-then-call-service-startforeground
Как вариант делать все также, запускать уведомление, но в настройках канала выключить оповещение, вибрацию и прочее.
Или не использовать сервис просто. Перейти на WorkManager, например.
Обсуждают сегодня