我正在用Java开发Android应用。我使用了很多库:firebase crashlytics,SQLCipher,ButterKnife等。问题是:当我从Android Studio运行该应用程序时,我注意到该应用程序仍保持活动状态,即使我关闭了所有活动。我知道有一些线程在后台工作。.但是我不知道如何检查哪个线程处于活动状态,更重要的是,它是做什么的。有任何想法吗?
您可以使用getState()方法获得线程处于什么状态,该方法返回Thread.States的Enum。在给定的时间点,线程只能处于以下状态之一。
NEW一个尚未开始执行的Fresh线程。RUNNABLE在Java虚拟机中执行的线程。BLOCKED阻塞,等待监视器锁定的线程。等待中的一个线程正等待另一个线程通知。TIMED_WAITING一个线程,它正在等待另一线程通知特定的时间。终止线程谁的运行方法已结束。
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]);
}
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);
}
}