Итак, я создал сервис, и он отлично работает. Все, что он делает, просто подсчитывается. У меня есть пользовательский класс, который обрабатывает проблемы с использованием уведомлений. Этот класс имеет getNotification, который, очевидно, возвращает уведомление, которое он использует. Все отлично поработало, но я должен заставить свою службу работать на переднем плане (она синхронизирует некоторые важные данные с приложением, которые не должны прерываться до тех пор, пока не закончится). Сейчас, когда я добавляю startForeground, я добавляю свое уведомление и идентификатор, который оставляет это так. startForeground (1337, уведомление);При добавлении функции startForeground() к службе создаются два уведомления вместо одного
Проблема У меня есть то, что первое уведомление(), которое я делаю, по какой-то причине не зависит от других уведомлений. Поэтому, когда я запускаю этот запуск, он создает два уведомления. Первый застрял в первом обновлении, которое имеет название под названием «Zilean», и в нем говорится «Подсчет». Другой обновляется отлично. Я заметил, что если startForeground запускается с идентификатором 0 (startForeground (0, уведомление)), то эта проблема исправляется, но если я убью активность, уведомление будет умирать. Не происходит, когда id <> 0.
У меня была эта проблема слишком долго, поэтому я использую фиктивный сервис, который учитывается только. Я хочу знать, что если активность умирает из-за пользователя или просто потому, что андроид решил удалить свои воспоминания, тогда служба будет продолжать работать.
// onStartCommand
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// NOTIFICATION SECTION
NotificationManager mNotifyManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this);
notificationManagerClass = new SBNNotification(mNotifyManager,
mBuilder, true, 1, false, "Zilean",
"Initiating Counter", false);
notificationManagerClass.notificate();
final Notification notification = notificationManagerClass.getNotification();
notification.flags = flags;
notification.defaults = Notification.DEFAULT_LIGHTS;
startForeground(1337, notification);
new Timer().scheduleAtFixedRate(new TimerTask() {
int i=0;
@Override
public void run() {
notificationManagerClass.setContentTitle("Contando");
notificationManagerClass.setContentText(String.valueOf(i));
notificationManagerClass.notificate();
i++;
Log.e("HOLAAA", String.valueOf(i));
}}, 0, 1000);
return START_REDELIVER_INTENT;
}
Итак, что мне не хватает?