Итак, отвечая на мой собственный вопрос, очевидно, моя проблема была не в флаге ожидающего намерения, а в onStartCommand
внутри моего service
.Очевидно, он был вызван дважды (во второй раз из-за того, что я переместил service
на foreground
, вызвав:
startForeground(id, notification)
(поправьте меня, если я ошибаюсь в отношении причины), поэтому слушатели регистрировалисьснова и так данные отправлялись дважды. Вместо того, чтобы начинать это в onStartCommand
, я теперь начинаю foregroundService
в onBind
.
Единственное, что я не понял, это: у меня былосоздать BroadcastReceiver
вместо моего IntentService
для обработки pendingIntent
и в моей реализации Service
я теперь использую
pendingIntent = PendingIntent.getBroadcast(this, 12, intentService, PendingIntent.FLAG_UPDATE_CURRENT);
вместо
pendingIntent = PendingIntent.getService(this, 12, intentService, PendingIntent.FLAG_UPDATE_CURRENT);
или ещеpendingIntent
никогда не пойман. У кого-нибудь есть идея, почему?