Я просто тестирую почти пустой проект андроида .Daemon Thread все еще жив после закрытия приложения
Я создал поток демона в главной деятельности.
Запустил приложение и нажал кнопку «Назад» на телефоне, чтобы закрыть приложение.
Но нить демона никогда не умирает.
Daemon Thread отлично работает с пустым JAVA PROJECT.
Но с android, не работает.
Я искал решение в течение нескольких часов, но получил это.
Нищий демона работает только до тех пор, пока существуют не-демонные потоки работает. Когда закончится последний не-демонный поток, среда выполнения завершится. Это обычно не относится к приложениям с пользовательским интерфейсом.
Кто-нибудь знает, как это решить?
PS. Я остановил приложение, не нажав кнопку возврата оборудования, а нажав кнопку «Принудительная остановка» в «Информация о приложении», и оба приложения и поток исчезли!
Я впервые узнал о Daemon Thread из некоторых примеров кода для Android-разработчика.
Но никто не упоминал о том, что я пережил.
Разве разработчики Android не верят, что потоки Daemon будут убиты точно?
Спасибо за ваш любезный ответ CommonsWare! Но я тебя не понимаю. Во-первых, я не знаю, что означает «cancel()». Я знаю только метод stop() и interrupt(). Во-вторых, я тестирую пустой проект, поэтому я думаю, что нажатие кнопки «Назад» может остановить все потоки, и мне не нужно ничего кодировать для потоков. В-третьих, я планировал использовать Daemon Thread, потому что я думал, что мне не нужны коды, чтобы остановить определенные потоки. Если мне нужно отменить поток, нет никакой пользы в использовании Daemon для меня. – Jenix
@Jenix: Приносим извинения за имя метода; Я думал о 'AsyncTask', который использует' cancel() '. «Я подумал, что нажатие кнопки« Назад »может остановить все потоки, и мне не нужно ничего кодировать для потоков» - нет. Навигация (BACK, HOME и т. Д.) Не оказывает прямого влияния на потоки. Они могут влиять на продолжительность жизни вашего процесса, но если вы хотите остановить фоновый поток при уничтожении активности, вам необходимо самому это обработать. «Если мне нужно отменить нить, нет смысла использовать Daemon для меня», - согласился. – CommonsWare
@Jenix: «нажав кнопку« Force stop »в« Информация о приложении », и оба приложения, и нить пропали!» - это потому, что «Force Stop» завершает ваш процесс. «Разве разработчики Android просто верят, что потоки Daemon будут убиты точно?» - Разработчики Android не используют потоки демона. Нам нужно лучше контролировать время жизни нити. – CommonsWare