Реализация пользовательских okhttp3.Callback

Как правило, когда я получаю ответ от okhttp3 Callback, код успешен, и я обрабатываю интерфейс с телом Response. Обычно это включает в себя размещение строк внутри runOnUIThread() или new Handler(Looper.getMainLooper()).post(...), Чтобы сэкономить на аде табуляции это иногда создает и разделить коды транспортного уровня на отдельные обратные вызовы, могу ли я сделать что-то подобное?

public abstract class AbsCustomCallback implements okhtt3.Callback {

    @Override
    public abstract void onFailure(Call call, IOException e);

    @Override
    public void onResponse(Call call, final Response response) throws IOException {
        new Handler(Looper.getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                try {
                    if (response.isSuccessful()) {
                        onSuccessMainThread(response);
                    } else {
                        onFailureCodeMainThread(response);
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public abstract void onSuccessMainThread(Response response) throws IOException;

    public abstract void onFailureCodeMainThread(Response response) throws IOException;
}

Будет ли эта реализация работать всегда? Это заставит новый CustomCallback реализовать методы обратного вызова onFailure, onSuccessMainThread и onFailureCode.

0 ответов

Другие вопросы по тегам