Если бы я был вами, я бы сначала попытался спроектировать (и построить) модель предметной области.Это должно стать набором классов, который позволяет вам делать все, что вы хотите с вашими акциями, независимо от пользовательского интерфейса.Вы также должны встроить постоянство данных непосредственно в эти классы (я предлагаю использовать SQLite для этого бита).
Затем, когда у вас есть рабочая модель, создайте пользовательский интерфейс поверх этого.Шаблон проектирования MVP довольно хорошо работает с Android.
Реализуйте свои действия в виде представлений, они должны как представлять данные, так и захватывать события пользовательского интерфейса и делегировать эти события экземплярам Presenter, которые затем сообщают / манипулируют моделью и соответствующим образом обновляют представления.Например,
MyStocksView может предоставить пользователю список акций и последние изменения цены акций (или что-то еще).MyStocksView содержит фактические виджеты, которые составляют пользовательский интерфейс, а также выступает в качестве прослушивателя и обработчика событий для различных событий пользовательского интерфейса (например, когда пользователь нажимает кнопку).Он также должен содержать экземпляр класса MyStocksPresenter.
Как только пользователь нажимает кнопку, скажем, «удалить запас», обработчик событий MyStocksView затем запускает метод в экземпляре презентатора, например, Presenter.removeStock (id), этот метод обновляет модель(удаляет его из структур данных и базы данных в памяти) и, наконец, если все прошло успешно, обновляет представление.По сути, он работает как посредник между уровнем представления и моделью данных.
Что касается автоматических обновлений каждые X минут, я бы справился с этим с помощью AsyncTask, в действительности нет особого смысла в использованиисервис, если вы хотите, чтобы это происходило только во время работы приложения.