Вообщем есть приложение которое состоит из одного Activity и множества Fragment. В проекте используется MVP библиотека Moxy.
У меня есть Fragment чата (фрагмент переписки с другим юзером) и Websocket сервис который я привязываю к главной Activity.
Activity реализует интерфейс:
public interface WebsocketEventListener {
void onMessage(String s);
}
который я потом передаю в WebsocketService после привязки, и таким способом я смогу получать сообщение в активити из сервиса.
Вопрос в том, каким образом мне передавать данные из Activity во Fragment'ты, и как это сделать правильно используя MVP элементы из библиотеки Moxy.
Щас главная Activity выглядит примерно так:
public class MainActivity extends MvpAppCompatActivity implements MainView , WebscoketListener{
//...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onStart() {
super.onStart();
// Bind to WebsocketService
Intent intent = new Intent(this, WebscoketService.class);
bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
}
private ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName className, IBinder service) {
LocalBinder binder = (LocalBinder) service;
mService = binder.getService();
mService.addListener(this);
}
@Override
public void onServiceDisconnected(ComponentName arg0) {
}
};
@Override
public void onMessage(String message){
//receive message from WebsocketService
}
@Override
public void showChatFragment() {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, ChatFragment.getInstance(this.mainPresenter))
.addToBackStack(ChatFragment.TAG)
.commit();
}
//...
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости