Вы можете использовать Sticky Events из EventBus библиотеки. В основном это будет кешировать ваши данные в памяти перед трансляцией событий. Данные могут быть доставлены подписчикам. Таким образом, вам не нужна особая логика для рассмотрения уже имеющихся данных.
Сначала вам нужно объявить класс для хранения данных, которые вы получаете из сети.
public class MyDataEvent {
String token;
// Write more properties here
}
В сервисе после получения данных из сети публикуйте событие, содержащее данные для подписчиков.
MyDataEvent data = new MyDataEvent();
data.token = "123456789abcxyz";
EventBus.getDefault().postSticky(data);
В деятельности, которую вы хотите получить данные
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
// UI updates must run on MainThread
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onMyDataEvent(MyDataEvent data) {
// Process the data here
Log.i("TAG", data.token);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}