Android应用仍然保持活动状态,没有任何活动

问题描述 投票:0回答:2

我正在用Java开发Android应用。我使用了很多库:firebase crashlytics,SQLCipher,ButterKnife等。问题是:当我从Android Studio运行该应用程序时,我注意到该应用程序仍保持活动状态,即使我关闭了所有活动。我知道有一些线程在后台工作。.但是我不知道如何检查哪个线程处于活动状态,更重要的是,它是做什么的。有任何想法吗?

java android android-studio profiling backgroundworker
2个回答
0
投票

您可以使用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]); 
}   

0
投票
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);
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.