Android-приложение по-прежнему остается активным без какой-либо активности - PullRequest
0 голосов
/ 05 ноября 2019

Я разрабатываю приложение для Android на Java. Я использовал много библиотек: сбои в firebase, SQLCipher, ButterKnife и т. Д. Проблема в том, что когда я запускаю приложение из Android Studio, я замечаю, что приложение все еще остается активным как процесс, даже если я закрываю все действия. Я знаю, что есть какой-то поток, который работает в фоновом режиме ... но я не знаю, как проверить, какой поток активен, и что более важно, что он делает. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019
To kill the thread , u can do this :

myService.getThread().interrupt();

NOTE : the method Thread.stop() is deprecated

EDIT : : try this

public void stopThread(){
  if(myService.getThread()!=null){
      myService.getThread().interrupt();
      myService.setThread(null);
  }
}
0 голосов
/ 05 ноября 2019

Вы можете узнать, в каком состоянии находится поток, используя метод getState (), который возвращает Enum of Thread.States. Поток может находиться только в одном из следующих состояний в данный момент времени.

NEW Свежий поток, который еще не начал выполняться.
RUNNABLE Поток, который выполняется на виртуальной машине Java. .
BLOCKED Поток, заблокированный в ожидании блокировки монитора.
WAITING Поток, ожидающий уведомления другим потоком.
TIMED_WAITING Поток, ожидающий уведомления другим потоком о конкретном потокеколичество времени.
TERMINATED Поток, метод выполнения которого завершился.

Thread t = new Thread();
Thread.State e = t.getState();
Thread.State[] ts = e.values(); 
for(int i = 0; i < ts.length; i++){
   System.out.println(ts[i]); 
}   
...