Где я могу создать и использовать ScheduledThreadPoolExecutor, TimerTask или Handler?

Мне нужно, чтобы мой читатель RSS-каналов проверял фид каждые 10 минут для новых сообщений, а затем анализировал их, если есть новые. Мне также нужно обновлять интерфейс пользователя каждую минуту.

Я читал и слышал разные вещи из разных источников. Мое настоящее понимание заключается в том, что я могу использовать ScheduledThreadPoolExecutor для создания двух запланированных streamов, а одному из них нужен Handler для обновления пользовательского интерфейса. Я не уверен, какое наиболее эффективное использование этих classов или TimerTask .

Я также очень сомневаюсь в том, где можно сделать подclassы из них. Один из друзей предложил расширить TimerTask как внутренний class в моем classе FeedParser чтобы упростить его. Однако, чтобы реализовать его таким образом, я должен использовать метод run() для TimerTask без переопределения его, то есть я не могу просто использовать параметры, которые мне нужны для функций, которые нужно запустить.

Короче говоря, каков наилучший способ запланировать выполнение задач для этого, и где бы я их реализовать?

    Я предпочитаю использовать ScheduledThreadPoolExecutor. Как правило, если я правильно понимаю ваши требования, все это может быть реализовано в вашей деятельности, TimerTask и Handler не нужны, см. Пример кода ниже:

     public class MyActivity extends Activity { private ScheduledExecutorService scheduleTaskExecutor; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); scheduleTaskExecutor= Executors.newScheduledThreadPool(5); // This schedule a task to run every 10 minutes: scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() { public void run() { // Parsing RSS feed: myFeedParser.doSomething(); // If you need update UI, simply do this: runOnUiThread(new Runnable() { public void run() { // update your UI component here. myTextView.setText("refreshed"); } }); } }, 0, 10, TimeUnit.MINUTES); } // end of onCreate() } 

    Не забудьте закончить / закрыть свою выполнимую задачу должным образом в Activity.onDestroy (), надеюсь, что это поможет.

    Давайте будем гением компьютера.