¿Cómo llamo a una intención en Retrofit Callback?

Quiero mostrar una nueva actividad en callback de éxito de mi WebService llamado por Retrofit. Y tengo dificultades para encontrar ejemplos sobre cómo usar el resultado de retroalimentación de Retrofit para iniciar una nueva actividad. ¿Es una buena manera de hacerlo? ¿Tengo que limpiar algunas cosas antes?

public void validate(View view) { RetrofitWebServices.getInstance().webserviceMethod(params,new Callback<MyObject>() { @Override public void success(MyObject object, Response response) { Intent barIntent = new Intent(FooActivity.this, BarActivity.class); startActivity(barIntent); } @Override public void failure(RetrofitError error) { ... } }); } 

2 Solutions collect form web for “¿Cómo llamo a una intención en Retrofit Callback?”

Puede implementar Callback con referencia débil al Context

 public class MyCallback implements Callback<MyObject> { WeakReference<Context> mContextReference; public MyCallback(Context context) { mContextReference = new WeakReference<Context>(context); } @Override public void success(MyObject arg0, Response arg1) { Context context = mContextReference.get(); if(context != null){ Intent barIntent = new Intent(FooActivity.this, BarActivity.class); context.startActivity(barIntent); } else { // TODO process context lost } } @Override public void failure(RetrofitError arg0) { // TODO process error } } 

Sólo recuerde – esta solución no funcionará si se produjo pérdida de Context durante la solicitud en curso, pero es posible que no se preocupe por la posible pérdida de memoria que puede ser si mantiene una referencia fuerte al objeto Context .

Hola tenemos una solución que parece más fácil: use la función getApplicationContext() .

No estoy 100% seguro de que está bien, pero en mi caso funciona como se esperaba.

Su código sería:

 public void validate(View view) { RetrofitWebServices.getInstance().webserviceMethod(params,new Callback<MyObject>() { @Override public void success(MyObject object, Response response) { Intent barIntent = new Intent(getApplicationContext(), BarActivity.class); startActivity(barIntent); } @Override public void failure(RetrofitError error) { ... } }); } 
  • Cargar archivos en el servidor mediante retroadaptación
  • Retrofit: ¿Cómo enviar una solicitud POST con campos constantes?
  • Cómo probar la interfaz de usuario de Android utilizando IdlingResource cuando se utilizan las solicitudes de red de Retrofit
  • NetworkOnMainThreadException con retrofit-beta2 y rxjava
  • Prueba de unidad de Android con Retrofit y Mockito
  • Adaptar la matriz de objetos a GSON Error
  • Encadenamiento de dos llamadas de servicio web mediante RxJava y Retrofit
  • RxJava y Retrofit - Aumento de excepciones personalizadas en función de la respuesta del servidor
  • RxJava onCompleted y onTerminate en el hilo principal
  • AbstractMethodError cuando se utiliza RxJavaCallAdapterFactory en Retrofit 2
  • retrofit: trata con la propiedad que puede ser una cadena vacía o una matriz
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.