Я хочу показать новую активность при успешном обратном вызове моего WebService, вызванного Retrofit. И мне трудно найти примеры того, как использовать результат обратного вызова Retrofit для запуска новой активности. Это хороший способ сделать это? Должен ли я убирать некоторые вещи раньше?Как я могу назвать намерение в ретрофоническом обратном вызове?
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) {
...
}
});
}
Спасибо. Я использую этот шаблон для всех своих вызовов веб-сервисов. Но это правильный способ сделать это? Всегда ли это должен быть асинхронный вызов в Android? – Labe
Поскольку Android заставляет выполнять сетевые запросы в отдельном потоке, этот механизм всегда будет асинхронным - явно или неявно. Используя Retrofit вы можете реализовать как синхронные (с использованием возвращаемого значения), так и асинхронный поток (используя обратные вызовы). Просто помните - в первом случае вы должны сами позаботиться о нарезке. Я не могу гарантировать, что этот подход обратного вызова является наилучшим способом достижения вашей цели, но я боюсь, что нет абсолютно надежного и надежного метода, который позволит вам сохранить контекстную ссылку вживую. – Viacheslav