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