如何在不强制关闭app的情况下终止Android中的守护程序线程?

时间:2012-03-02 05:18:41

标签: android daemon

我在我的Android应用程序中使用了一个android jar文件。调用该jar时的方法会创建一个守护程序线程。我的应用程序不断像服务一样运行。我希望在没有强制关闭我的应用程序的情况下终止该守护进程。我怎样才能做到这一点? 提前谢谢。

3 个答案:

答案 0 :(得分:0)

可以使用一个按钮构建一个简单的活动或一个简单的小部件,您可以使用它来切换您的守护进程?

答案 1 :(得分:0)

您可以在项目中创建特定的流程。 http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html

让您的某个服务成为自己的进程,在您进行函数调用后会被杀死,并且在项目的其他部分不受影响时执行您所需的操作。

答案 2 :(得分:0)

如果您无法访问守护程序线程的源代码,那么您应该可以使用Thread.interrupt();

来停止它

如果您的守护程序线程的源代码应该定期唤醒以测试其环境。 即应该从它拥有的任何锁中醒来并再次通过它的循环。 然后你只需在循环中添加一个布尔值来检查它是否应该终止。

public void run(){
  running = true;
  while(running){
     // do your wait task
  }
}

public void cancel(){
    running = false;
}

许多阻塞的东西都有一个标志,用于定义等待的时间,例如ServerSocket。

一般来说,线程处理的基本Java技巧也适用于Android,主要的区别在于你使设备工作越困难,电池性能越差。这是一个小参考,其中包含有关停止线程的一些信息。

http://docs.oracle.com/javase/1.5.0/docs/guide/misc/threadPrimitiveDeprecation.html

请参阅有关Thread.stop()的部分。