Intereting Posts
Что такое жизненный цикл для адаптера RecyclerView? Android – КоординаторLayout / NestedScrollView / Скрыть панель инструментов / Проблема с WebView OnTouchEvent не работает над дочерними представлениями Реферат: сделайте снимок с использованием намерения камеры и отобразите фотографию с правильной ориентацией (работает, надеюсь, на все устройства) Как получить список доступных / установленных шрифтов в android? Повторение изображения при прокрутке в виде сетки Android с помощью универсального загрузчика изображений Как вернуть тему из Darcula в дефолт в Android Studio Когда закрыть курсор в Android? Исключение NullPointerException в IabHelper.queryPurchases Скачивание ссылок в моем приложении Fatal Exception: java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV23 Как общаться с сервером без подключения к Интернету? Android Canvas.drawTextOnPath не выглядит корректным, если для параметра Paint установлено значение Stroke Потоковое видео с камеры Android на сервер Как сделать RelativeSizeSpan выровненным вверх

Как полностью уничтожить поток Android?

У меня есть служба, которая имеет собственный поток, работающий на фоне. Я хотел бы убить эту службу, включая поток.

Я создал поток как этот и запустил его.

public class DaemonService extends Service { private DaemonThread thread; class DaemonThread extends Thread { public void run() { runDaemon(mArgv.toArray(), mConfig); } } public void onStart(Intent intent, int startId) { thread = new DaemonThread(); thread.start(); } } 

Как убить службу и поток? Мне не нужно беспокоиться о безопасности данных.

Solutions Collecting From Web of "Как полностью уничтожить поток Android?"

Чтобы убить нить, я думаю, вы можете сделать вот так:

 myService.getThread().interrupt(); 

ПРИМЕЧАНИЕ. Метод Thread.stop() устарел

EDIT :: попробуйте это

 public void stopThread(){ if(myService.getThread()!=null){ myService.getThread().interrupt(); myService.setThread(null); } } 

Метод Thread.stop() устарел, вы можете использовать Thread.currentThread().interrupt(); И установите thread=null .

Используйте Context.stopService() или stopSelf() службы.

Сделайте это в методе onDestroy сервиса

http://developer.android.com/reference/android/app/Service.html#onDestroy ()

  public void onDestroy(){ thread.stop(); super.onDestroy(); } 

Затем остановите службу с помощью stopService (); (Это вызовет onDestroy ());

http://developer.android.com/reference/android/content/Context.html#stopService(android.content.Intent)

 @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Thread.currentThread().interrupt(); }