View Model sigue creando instancias de Live Data
Creé la instancia de View Model enonCreate
método de una actividad.
ticketViewModel = ViewModelProviders.of(this).get(TicketViewModel.class);
Entonces tengo un método,AddTicket
, que usaviewModel
para acceder a un servicio y en respuesta deviewModel
rechazo la carga de animación.
public void addTicket(View view){
ticketViewModel.AddTicket(id).observe(this, response ->{
dismissLoadingAnimation();
}
Ahora, después de agregar un ticket, el usuario puede reprimir elAdd Ticket
y eladdTicket()
e llamará nuevamente al método @.
Pero esta vezobserver
definido en ViewModel se llama 2 veces, lo que resulta en 2 llamadas de red y 2dismissLoadingAnimation
ejecución.
Y si sigo presionandoaddTicket
, el número de observadores en ejecución definidos dentro deViewModel
mantener aumentos.
Este es mi código de Ver modelo.
public class TicketViewModel extends AndroidViewModel implements IServiceResponse {
MutableLiveData<String> mObservableResponse = new MutableLiveData<String>();
public MutableLiveData AddTicket(String id){
JsonObject jsonObject= new JsonObject();
jsonObject.addProperty("id", id);
NetworkUtility networkUtility= new NetworkUtility(this, ADD_TICKET);
networkUtility.hitService(URL, jsonObject, RequestMethods.POST);
return mObservableResponse;
}
@Override
public void onServiceResponse(String response, String callType){
if(serviceTag.equalsIgnoreCase(ADD_TICKET)){
mObservableResponse.setValue("success");
}
}
}