приложение рекомендуется разделить на несколько слоев, например, в архитектуре MVP на Model View Presenter.
View - слой для управления визуальной частью приложения, это могут быть классы Activity, Fragment..
Presenter - слой, отвечающий за обработку событий, слой методы которого вызывает View,
Model - слой данных, именно тут вы храните свои данные. Presenter достает данные из этого слоя и вызывает методы View для отображения полученных данных.
public interface WeatherDataView{
void showWeatherData(WeatherData data);
}
public class WeatherActivity extends AppCompatActivity implements WeatherDataView{
private WeatherPresenter presenter;
....
public void onCreate(){
...
presenter.loadWeatherData();
...
}
public void showWeatherData(WeatherData data){
....
}
}
public class WeatherPresenter {
private Repository repository;
private WeatherDataView view;
...
public void loadWeatherData(){
WeatherData data = repository.fetchWeatherData();
view.showWeatherData(data);
}
}
//это в слое Model
public class Repository{
public WeatherData fetchWeatherData(){
return api.fetchWeatherData();
}
}
Пример слишком упрощенный