У меня есть довольно любопытная проблема. У меня есть не связанная служба, которую я вызываю с помощью кода ниже из моего основного действия при открытии приложения.Сервис не будет убит независимо от того, что
//some code checks if the service is awake. if not then the code below is called
Intent serviceIntent = new Intent(this, SMS_Listener_Service.class);
startService(serviceIntent);
Когда новый смс приходит, ожидают обслуживаний в течение 3 секунд с помощью таймера, чтобы обеспечить наблюдатель контента накопил данные во внутреннем смс дб. после этого он звонит в intenservice, чтобы сделать тяжелый подъем.
По неизвестным причинам, служба иногда висят и застревают на «перезагрузки (фото)»
Любопытно, что даже попытки Принудительно остановить службу в разделе приложений не работает. Он мгновенно исчезает, а затем появляется снова с тем же сообщением. использование stopService в коде не работает, и метод OnDestroy в службе никогда не вызывается. Единственный способ - перезагрузить телефон.
Проблема заключается в том, что, когда он находится в этом состоянии он не функционирует. (Его означало для разбора входящих SMS- сообщений)
Я бегу это на Galaxy Note 3 с андроид 4.3
" "
Мое подозрение, что Intentservice, выполняющий фактический синтаксический анализ, не завершается, и поэтому вызов службы для остановки сам по себе никогда не вызывается.
Вопрос в том, есть ли способ заставить intenservice, который повесил, чтобы остановиться?
это код в Команда пуска в службе
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
if (!blnAutoSyncisEnabled) {
stopSelf();
return 0;
} else {
return START_STICKY;
}
}
более детальный вид тот же вопрос здесь https://stackoverflow.com/posts/21077517/edit
В начале я завернул весь код в службу в попытке поймать с возвратом в исключение, чтобы служба могла прекратить себя изящно – KuriaNdungu