Как не получить мой будильник на свой собственный путь?

Я использую Alarm Manager для запуска IntentService каждый час. Однако изначально тревога регистрируется, когда пользователь запускает приложение. Проблема в том, что когда пользователь снова открывает приложение, он заставляет менеджера создать новый запуск службы, и если текущая служба уже запущена, они спотыкаются друг о друга из-за подключения к базе данных, и все умирает!

Другая проблема заключается в том, что служба будильника полностью останавливается. Почему? Я думал, что будильник должен срабатывать каждый час несмотря ни на что!


person kidalex    schedule 05.02.2011    source источник


Ответы (1)


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

person Rohit Sharma    schedule 05.02.2011
comment
идея базы данных не будет реализована, потому что база данных все еще будет там, даже если служба не работает. Переменная включения/выключения — лучшая идея, но где бы вы ее сохранили? Предпочтения? - person kidalex; 06.02.2011
comment
если это становится критически важным, сохраните его в Интернете и нажмите URL-адрес. В противном случае, если вы говорите об автономном решении, почему вы не можете сохранить его в существующей базе данных? - person Rohit Sharma; 06.02.2011