Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
return null;
}
// При необходимости отслеживания промежуточных результатов нужно реализовать ProgressCallListener
// для соответствующего callbackID
@Override
public ProgressCallListener getProgressCallListener(CallbackID callbackID) {
return null;
}
}
Следует отметить, что использование библиотеки Icepick не обязательно. Можно использовать свои решения для сохранения/восстановления состояния или использовать стандартный подход. При использовании библиотеки Icepick необходимо самостоятельно ознакомиться с её документацией по установке и использованию. Важно понимать, что классы сохраняемых объектов в Icepick должны реализовывать интерфейс Parcelable.
Упростить реализацию Parcelable можно, используя класс фреймворка ParcelPacker, который использует возможности библиотеки Gson.
Пример реализации Parcelable с помощью ParcelPacker для класса ColumnItem:
Expand source
public class ColumnItem implements Parcelable {
public String columnName;
public String columnValue;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
ParcelPacker. writeToParcel(parcel, this);
}
public static final Creator<ColumnItem> CREATOR = ParcelPacker. getCreator(ColumnItem. class);
}
Отмена выполнения и получение промежуточных результатов асинхронных задач
При вызове длительных методов поддерживается получение промежуточных результатов в процессе выполнения вызова, а также отмена выполнения.
Пример использования:
Expand source
String res = hyperHive
.query(sqliteDir, query)
.setProgressListener( new ProgressCallListener() {
@Override
public boolean onChangeProgress(/*промежуточный результат*/ String message, /*id запроса*/ long id) {
// Можно обработать промежуточный результат
doSomethingWithMessage(message);
// Операция будет прервана, если вернуть true
return isCancel();
}
}).execute();
}
Если не нужно получать промежуточные результаты, но необходимо иметь возможность отменить операцию, можно использовать решение, аналогичное указанному в примере ниже:
Expand source
// Сохраняем ссылку на вызов
final Call call = hyperHive
.query(sqliteDir, query)
.enqueue(new Callback<BaseStatus>() {
@Override
public void onResponse(Call<BaseStatus> call, BaseStatus status) {
if (status. isOk) {
// Обрабатываем успех
} else {
// Обрабатываем ошибку
}
}
@Override
public void onFailure(Call<BaseStatus> call, Throwable throwable) {
// Обрабатываем ошибку
}
});
cancelButton. setOnClickListener(new View. OnClickListener() {
@Override
public void onClick(View view) {
// Вызываем отмену вызова
call. cancel();
}
);
В некоторых случаях удобней использовать решения, описанные в разделе Безопасный вызов асинхронных методов. Настоятельно рекомендуется с ним ознакомиться.
5.4.4 Описание методов Android-фреймворка
Во фреймворке Android для использования представлены следующие основные методы:
Методы авторизации пользователя
- Авторизация пользователя по логину и паролю (auth)
Метод служит для авторизации пользователя с использованием логина и пароля. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
auth(@NonNull final String login, @NonNull final String password)
- Отмена авторизации (unAuth)
Метод служит для выхода из режима авторизованного пользователя. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
unAuth()
- Авторизован ли пользователь (isAuthorized)
Метод проверяет, авторизован ли пользователь. Метод возвращает значение true, если пользователь авторизован, и false, если пользователь не авторизован.
isAuthorized()
Методы работы с данными
- Работа с дельтой (getDeltaStream)
Метод служит для работы с дельта-кэшированием. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка). При вызове данного запроса выполняется скачивание данных ресурса с сервера и сохранение их в локальной базе данных, соответствующей указанному ресурсу.
getDeltaStream(@NonNull final String resourceName, final Class<T> tClass)
- Отправка данных (post)
Метод служит для отправки данных на сервер. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка). При вызове данного запроса выполняется отправка данных в соответствующий ресурс на сервер.
post(@NonNull final String resourceName, @Nullable final Map<String, String> params)
- Получение ресурсов (get)
Метод служит для получения данных с сервера. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка). При вызове данного запроса выполняется скачивание данных ресурса с сервера.
get(@NonNull final String resourceName)
- Чтение sessionId (readCookie)
Метод служит для получения sessionId после авторизации. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
readCookie()
Методы работы с логами
- Логирование (initLogging())
Метод служит для инициации автоматической отправки логов по расписанию, полученному от сервера. Если инициирование выполнено успешно, возвращает значение true, иначе - false. Метод необходимо запускать после успешной авторизации.
initLogging()
- Установка уровня логирования (setLogLevel)
Метод служит для установки минимального уровня логирования.
setLogLevel(int level)
Параметр level может принимать следующие значения:
- 4 – LOG_INFO; 5 – LOG_WARNING; 6 – LOG_ERROR. Создание логов (logTrace, logWarning, logFatal)
Каждый из методов сохраняет сообщение в журнале логов с указанием текущего времени и уровня логирования.
logTrace(@NonNull String message),
logWarning(@NonNull String message),
logFatal(@NonNull String message)
Методы работы с сообщениями
- Подписка на сообщения (subscribe)
Метод служит для подписки на рассылку сообщений от сервера с соответствующей темой. Описание параметров метода доступно в официальной документации на MQTT. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
subscribe(@NonNull final String topic, final int mqttVersion, final boolean isCleanSession)
- Отписка от сообщений (unsubscribe)
Метод служит для отказа от рассылки сообщений от сервера с соответствующей темой.
unsubscribe(@NonNull String topic)
Методы работы с базами данных
- Режим проверки сертификата (setSslChecks)
Метод служит для установки режима проверки сертификата защищенного соединения. Метод возвращает значение true, если проверка включена, и false в ином случае.
Для отключения проверки сертификата необходимо передать в параметр enable значение"false" ; для включения - "true". По умолчанию проверка сертификата включена.
setSslChecks(boolean enable)
- Запрос к локальной базе (query)
Метод служит для создания запросов к локальной базе SQLite. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
query(@NonNull final String databasePath, @NonNull final String query, final Class<T> tClass)
Метод содержит параметры:
- databasePath – путь к базе; query – SQL-запрос; tClass – класс ожидаемого объекта в результате запроса (см. подраздел Вызов методов Android-фреймворка). Запрос к локальной базе ресурса (queryToResTable)
Метод служит для создания запросов к локальной базе SQLite указанного ресурса. Метод возвращает экземпляр класса Call (см. подраздел Вызов методов Android-фреймворка).
queryToResTable(@NonNull final String resourceName, @NonNull final String query, final Class<T> tClass)
Метод содержит параметры:
- resourceName – имя ресурса для доступа к соответствующей ему базе; query – SQL-запрос; tClass – класс ожидаемого объекта в результате запроса (см. подраздел Вызов методов Android-фреймворка). Открытие или создание зашифрованной базы (openBase)
Метод служит для создания или открытия зашифрованной базы данных. Метод возвращает значение true, если открытие базы прошло успешно, и false в ином случае.
openBase(String pathBase, String key)
- Если база еще не существует, то будет создана и открыта для работы новая база с использованием указанного ключа для шифрования. Если база уже существует, то будет выполнена попытка открыть базу с указанным ключом.
Открытие или создание зашифрованной базы для ресурса(openBaseResource)
Метод служит для создания или открытия зашифрованной базы данных для указанного ресурса. Метод возвращает значение true, если открытие базы прошло успешно, и false в ином случае.
openBaseResource(String resourceName, String key)
- Если база еще не существует, то будет создана и открыта для работы новая база с использованием указанного ключа для шифрования. Если база уже существует, то будет выполнена попытка открыть базу с указанным ключом.
Закрытие локальной базы данных (closeBase)
Метод служит для закрытия базы данных по указанному пути. Метод возвращает значение true, если базу удалось закрыть, и false в ином случае.
closeBase(String pathBase)
Закрытие локальной базы данных ресурса (closeBaseResource)
Метод служит для закрытия базы данных, соответствующей указанному ресурсу. Метод возвращает значение true, если базу удалось закрыть, и false в ином случае.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |


