Есть так много способов обновить пользовательский интерфейс после переключения другого действия. Я поделюсь некоторым способом, который может помочь вам в обновлении пользовательского интерфейса из другого действия:
1) Шина событий
2) Приемник широковещания
3) Если вы используете Архитектура MVVM, затем вы можете создать настраиваемую модель viewModel, которая работает с живым приложением.
Event Bus
вам необходимо добавить зависимость EventBus
1) compile 'de.greenrobot:eventbus:2.4.0'
2) создать pojo
public class DataSyncEvent {
private final String syncStatusMessage;
public DataSyncEvent(String syncStatusMessage) {
this.syncStatusMessage = syncStatusMessage;
}
public String getSyncStatusMessage() {
return syncStatusMessage;
}
}
3) вызов с таймера обратного отсчета
EventBus.getDefault().post(new DataSyncEvent("Sync SuccessFully”);
4) Подпишитесь на действие, которое вы хотите получить обновление
@Subscribe
public void onEvent(DataSyncEvent syncStatusMessage)
{
Toast.makeText(this, syncStatusMessage.getSyncStatusMessage(), Toast.LENGTH_SHORT).show();
}
Примечание: Не забыть зарегистрироваться и отменить регистрацию
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
Радиоприемник:
1) звонок с таймера обратного отсчета
MyReceiver receiver = new MyReceiver(new Handler()); // Create the receiver
registerReceiver(receiver, new IntentFilter("some.action")); // Register receiver
sendBroadcast(new Intent("some.action"));
2) В другом мероприятии:
public static class MyReceiver extends BroadcastReceiver {
private final Handler handler; // Handler used to execute code on the UI thread
public MyReceiver(Handler handler) {
this.handler = handler;
}
@Override
public void onReceive(final Context context, Intent intent) {
// Post the UI updating code to our Handler
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(context, "Toast from broadcast receiver", Toast.LENGTH_SHORT).show();
}
});
}
}
Спасибо