Подход Android: как разработать сервис, который часто проверяет наличие определенного события - PullRequest
0 голосов
/ 06 апреля 2011

Я работаю с Android всего пару недель, и у меня возникли некоторые проблемы со Службами.

У меня запущена фоновая служба, которая проверяет каждую минуту или около того, нужно ли выполнить запланированное действие,Второе использование - хранить некоторые пользовательские данные и делать их доступными для моих действий.Есть две проблемы:

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

Я понимаю, почему Android убивает мою службуи так далее, и я также попытался использовать AlarmManager вместо использования таймера в службе.Эти подходы каким-то образом работают, но они не достаточно универсальны и достаточно динамичны.

Так как же я могу проводить как регулярную проверку расписания, так и какой-то обмен данными правильным способом, подобным Android?

1 Ответ

1 голос
/ 06 апреля 2011

Вам нужно прочитать о
местная служба и удаленный сервис Вы можете использовать следующую ссылку, чтобы увидеть разницу, или перейти по ссылке http://developer.android.com/guide/topics/fundamentals.html, чтобы прочитать о фундаментальном компоненте Android.

http://saigeethamn.blogspot.com/2009/09/android-developer-tutorial-for_04.html http://saigeethamn.blogspot.com/2009/09/android-developer-tutorial-part-9.html

Вы можете запустить поток, используя TimerTask и Timer, чтобы запланировать свою задачу через регулярные интервалы

Я использовал следующий код для отображения результата в пользовательском интерфейсе.

Handler handler = new Handler();
Timer t;
TimerTask timeTask;
protected void usingTimerTask() {
    t = new Timer();
    timeTask = new TimerTask() {
        public void run() {
                handler.post(new Runnable() {
                        public void run() {
                            btn1.setText("Hi");
                        }
               });
        }};

        t.scheduleAtFixedRate(timeTask, new Date(), 1000);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...