2012-01-14 3 views
0

Я использую timertask в основном действии, чтобы обновлять некоторые данные повторно каждые X секунд.android: какая разница между timertask и сервисом?

Эти данные статической формы, так что это публичный статический метод

это плохая техника? Я имею в виду, используя статические методы, подобные этому

Я знаю, что эта вещь называется службой, но на самом деле нет примеров в Интернете о том, как ее использовать, чтобы обновлять каждые X секунд переменную, к которой должны быть доступны некоторые деятельность

так что мой вопрос в том, в чем разница между использованием задачи таймера и службы? это таймерскасчет только счетчик времени и ничего больше? он работает параллельно, если он используется с обработчиком или нет? и что произойдет, если у вас есть что-то вроде этого:

 handler = new Handler(); 
    t = new Timer(); 
    task = new TimerTask() { 
     public void run() { 

      handler.post(new Runnable() { 
       public void run() { 

             //do stuff; 

       } 
      }); 

     } 

    }; 
    t.schedule(task, 0, 10000); 

Как именно этот код работает? Что это делает? он работает параллельно? почему даже если я оставлю действие, когда этот код сначала вызывается, он все еще работает? что заставляет его работать в этом случае?

заранее спасибо

ответ

2

TimerTask является частью стандартной Java и может быть использована для отсроченного или повторного выполнения для некоторой части (Runnable) кода. Используется discouraged on Android. Вместо этого вы можете использовать обработчик.

Служба может быть использована как независимая и пользовательская часть вашего приложения для Android. Он может запускаться и создавать свои собственные потоки и может быть запущен для пользовательского интерфейса или с помощью намерений через AlarmManager, например.

Это думает, что вы хотите, это сервис, который создает свою собственную нить и выполняет некоторую работу. Когда работа будет завершена, память будет освобождена на Android, когда сборщик мусора начнет работать, что вы не контролируете, и это хорошо.

+0

Отличный ответ. –

Смежные вопросы