После долгих исследований и поисков я обнаружил, что использование LocalBroadcastManager подходит для непрерывных обновлений другой активности.Реализация была также прямой.
Внутри класса Service при обновлении значения будет запущен метод updateUI()
:
private void updateUI(String statusValue){
broadcastIntent.putExtra("status", statusValue);
LocalBroadcastManager.getInstance(this).sendBroadcast(broadcastIntent);
}
Это передает значение, которое будет выбрано основным действием
В основной активности я добавил BroadcastReceiver для сбора этих частых обновлений:
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Get extra data included in the Intent
String brStatus = intent.getStringExtra("status");
if(brStatus != null){
//Do something
}
}
}
};
Я отмечу, что LocalBroadcastManager может предоставлять непрерывные обновления только во время выполнения действия.При нажатии onPause()
получатель обновлений становится незарегистрированным.