1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/bvin_admin-AppUpdateModule

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Модуль AppUpdate

Содержит функции проверки обновлений и их загрузки, зависит от библиотек NetworkModule и UtilsModule. Проверка обновлений осуществляется с помощью Volley в NetworkModule, а загрузка — через DownloadModule. Предоставляет некоторые стандартные формы пользовательского интерфейса (UI), но также позволяет полностью настроить его, реализовав соответствующие прослушиватели событий.
Demo: http://git.oschina.net/bvin/AndroidTest_Update

Описание

Используется библиотека UtilsModule, которая содержит ToastUtils для отображения некоторых сообщений о состоянии, StringUtils для работы со строками в формате URL и методы для получения версии приложения.

Проверка обновлений выполняется с помощью метода UpdateManager.checkVersion(String url, Map<String, Object> params, CheckListener checkListener). Здесь url — это адрес интерфейса для проверки обновлений, params — параметры для проверки обновления (для совместимости с различными интерфейсами могут потребоваться дополнительные данные, такие как идентификатор пользователя или текущая версия), а checkListener — слушатель состояния проверки обновлений. Если он не указан, будет использоваться стандартный вид UI. При необходимости можно реализовать собственный UI, реализовав этот слушатель. В нём можно создать собственный стиль UI.

Модель информации об обновлении (cn.bvin.lib.module.update.UpdateInfo):

  • версия — номер версии;
  • updateDesc — описание обновления;
  • apkUrl — адрес файла обновления;
  • apkFileSize — размер файла обновления.

DBUpdateInfo — класс, наследуемый от UpdateInfo, который может содержать базовую информацию о версии обновления в некоторых интерфейсах проверки обновлений.

Класс CheckRequest, наследующий Request, имеет два основных параметра: объект WrapRequest, содержащий адрес запроса и параметры, и слушатель для отслеживания состояния проверки обновлений:

@Override
protected void deliverResponse(UpdateInfo arg0) {
    if (arg0!=null&&checkListener!=null) {
        //передача результата ответа
        this.checkListener.onCheckSuccess(arg0);
    }
}

@Override
public byte[] getBody() throws AuthFailureError {
    //если есть параметры, то преобразуем их
    if (wrapRequest!=null&&wrapRequest.getParam()!=null) {
        //рекомендуется использовать формат MapParams
        if (wrapRequest.getParam().getMapParams()!=null) {
            return wrapRequest.getParam().getBytes();
        }
    }
    return super.getBody();
}

DefaultCheckRequest — реализация по умолчанию для преобразования содержимого ответа интерфейса в объект UpdateInfo. Может быть реализована при необходимости, так как форматы данных в разных интерфейсах могут различаться.

Слушатель CheckListener для асинхронной проверки обновлений является абстрактным классом. Для обеспечения частичной реализации интерфейса и совместимости с классами Request и ErrorListener в Volley, рекомендуется использовать интерфейс вместо класса extends, который допускает только одно наследование.

/**
 * начало проверки обновлений, это длительный сетевой запрос
 * @param context используется для получения номера версии приложения
 * @param url адрес интерфейса проверки обновлений
 * @param param параметры, необходимые для интерфейса обновления
 */
public abstract void onCheckStart(Context context, String url, RequestParam param);

/**
 * проверка обновлений прошла успешно
 * @param updateInfo информация, полученная с сервера
 */
public abstract void onCheckSuccess(UpdateInfo updateInfo);

/**
 * ошибка при проверке обновлений
 * @param e причина ошибки
 */
public abstract void onCheckFailure(Throwable e);

DefaultCheckListener реализует функциональность сравнения версий на основе CheckListener:

**
 * обнаружена новая версия, версия сервера больше версии приложения
 * @param updateInfo информация об обновлении
 */
public abstract void onUpdateFound(UpdateInfo updateInfo);

/**
 * новая версия не найдена, текущая установленная версия является последней версией
 */
public abstract void onUpdateNotfoud();

Использование

UpdateManager.with(Context) .checkVersion(url,Map<String, Object>,DataConvertor convertor) .listenUpdateConfirm(UpdateConfirmListener listener);

UpdateManager.with(Context): возвращает экземпляр UpdateManager через Context. checkVersion(адрес запроса, map параметров, преобразователь интерфейса данных) .listenUpdateConfirm(слушатель UpdateConfirmListener) для прослушивания подтверждения обновления.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Модуль обновления приложения, включающий в себя проверку обновлений, настройку пользовательского интерфейса для обновления, отслеживание прогресса обновления и установку после завершения обновления, требует наличия модуля сетевых запросов. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/bvin_admin-AppUpdateModule.git
git@api.gitlife.ru:oschina-mirror/bvin_admin-AppUpdateModule.git
oschina-mirror
bvin_admin-AppUpdateModule
bvin_admin-AppUpdateModule
master