Добавьте зависимость в файл build.gradle на уровне модуля:
// Добавляем репозиторий Maven
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/releases/'
}
}
// Добавляем библиотеку зависимостей
dependencies {
implementation 'com.gitee.chinasoft_ohos:ohos-weak-handler:1.0.1'
}
Если не удаётся запустить, удалите файлы проекта .gradle,.idea,build,gradle,build.gradle и создайте новый проект с вашей версией. Скопируйте соответствующие файлы нового проекта в корневой каталог.
Проблема
Оригинальная реализация Handler всегда сохраняет жёсткую ссылку на обработчик в очереди выполнения. Любой объект в Message или Runnable, отправленный в ohos.eventhandler.EventHandler
, будет жёстко ссылаться на него некоторое время. Если вы создадите анонимный Runnable и вызовете postTask
с большим таймаутом, этот Runnable будет удерживаться в памяти до истечения таймаута. Даже если ваш Runnable кажется небольшим, он косвенно ссылается на класс владельца, который обычно является чем-то большим, чем Activity или Fragment.
Вы можете прочитать больше в нашем блоге.
Решение
WeakHandler
сложнее, чем ohos.eventhandler.EventHandler
: он будет хранить WeakReferences
для runnables и сообщений, и GC сможет собрать их, как только экземпляр WeakHandler
больше не будет ссылаться.
Использование
Используйте WeakHandler
, как обычно используете Handler
.
Пример вызова Java **
import com.badoo.mobileDemo.util.WeakHandler;
public class ExampleAbility extends Ability {
private WeakHandler handler; // Нам всё ещё нужна хотя бы одна жёсткая ссылка на WeakHandler
@Override
public void onStart(Intent intent) {
handler = new WeakHandler();
...
}
private void onClick(Component view) {
handler.postTask(new Runnable() {
view.setVisibility(Component.VISIBLE);
}, 5000);
}
}
CodeCheck: тестирование кода без исключений.
CloudTest: тестирование кода без исключений.
Проверка безопасности вирусов: пройдена.
Текущая версия demo: основные функции аналогичны исходному компоненту.
Weak Handler предоставлен Badoo Trading Limited и выпущен под лицензией MIT.
Создано Дмитро Воронкевичем
##Блог Подробнее читайте в нашем техническом блоге или изучите другие наши проекты с открытым исходным кодом.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )