Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518

Убить поток в адаптере

05.03.2014, 05:04. Показов 1087. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После Делфи не до конца понимаю работу "сборщика мусора" Явы. Привык "подчищать" за собой сам.

Есть адаптер на основе BaseAdapter
В нем создаю отдельный поток.
В потоке запускаю бесконечный цикл, который по таймеру (заданному в милисекундах интервалу) что-то делает. Ссылка на поток хранится в private переменной адаптера

Вопрос: Убив адаптер, поток тоже убьется?

Код примерно такой:
Java
1
2
3
4
5
6
7
8
9
        Tread1 = new Thread(new Runnable() {
            public void run() {
                runed = true;
                while (runed){
                    // считаем милисекунды... что-то делаем...
                }
            }
        });
        Tread1.start();
Был бы делфи, в деструкторе (OnDestroy) запустил бы что-нибудь вроде Tread1.stop();
Но в яве даже не нашел перекрытие обработки OnDestroy

p.s. Адаптер создаю кучу раз(при каждом открытии активити), поэтому хочу убедиться что поток умирает вместе с ним...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.03.2014, 05:04
Ответы с готовыми решениями:

Как убить поток в CountDownTimer?
Привет, бойцам невидимого фронта! есть эдакий кастомный CountDownTimer.java: package com.dis.medprog; /* * Copyright (C)...

NullPointerException в адаптере RecyclerView
Здравствуйте уважаемые форумчане! Столкнулся с такой проблемой, в RecyclerView создаю адаптер для добавления карточек, в карточке, в...

Что не так я делаю в адаптере?
доброго, проблема, компелирую запускаю APK программа запускается видно верх название и меню три точки вертикально, потом закрывается с...

2
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
05.03.2014, 10:43
Цитата Сообщение от Tester64 Посмотреть сообщение
Вопрос: Убив адаптер, поток тоже убьется?
Я поэкспериментировал и пришел к выводу, что не убьётся. Более того, не получится даже убить адаптер. Логика такая: Чтоб убить объект достаточно уничтожить все ссылки на него и подождать пока сборщик мусора его прибьёт. Но для выполняющегося потока такое не пройдет, даже если занулить все ссылки на экземпляр класса Thread, то сборщик мусора его не тронет, вероятно где-то в недрах джава машины присутствует ссылка на него. Ваш класс Thread объявлен как вложенный класс внутри класса адаптера. Экземпляр вложенного класса (Thread ) всегда имеет ссылку на экземпляр класса который является для него "внешним" (ваш адаптер). В результате получается следующее:
1) экземпляр класса Thread никогда не будет выгружен из памяти
2) ваш вложенный класс Thread имеет ссылку на адаптер
3) адаптер не может быть выгружен из памяти так как на него всегда есть ссылка

Я могу ошибаться, поправьте если что не так.
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
05.03.2014, 19:28  [ТС]
Понятно... Предполагал подобное, поэтому и задал вопрос. Похоже прийдется делать как в Делфи - создавать свой метод OnDestroy, вызывать его обязательно перед закрытием активити, а в нем убивать поток.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.03.2014, 19:28
Помогаю со студенческими работами здесь

Показывать или скрывать записи в адаптере
Создаю адаптер со всеми записями для RecycleView а потом нажимаю кнопку и меняю условие отображение (например должны отображаться...

Изменить цвет текста в адаптере ListView
Здравствуйте, подскажите пожалуйста, как мне изменить по клику на item цвет текста в item ListView, чтобы он был зеленый, а во всех...

Назначить идентификаторы кнопкам в адаптере списка
Есть цикл генерации данных для адаптера списка void fillData() { for (int i = 1; i <= 17; i++) { String...

Загрузки изображений из сети в адаптере GridView
Загружаю картинки в адаптере gridview: //.. viewHolder.name.setText(arrayList.get(position).get("name")); ...

Поиск по ListView основанному на кастомном адаптере
Есть кастомный адаптер. ListView сделан на его основе. Данные загружаются из БД. Делаю поиск по позициям листа. Дописал в класс кастомного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru