我有一个服务,在onCreate()
期间启动了一个线程。该线程监控硬件(IOIO),并在断开连接时结束,因此它基本上是一个无限循环。从活动中停止服务可以正常工作,并且线程也会在onDestory()
中停止。
我的问题是,如果线程死亡(例如由于异常),是否可以停止生成它的服务。
我尝试在线程代码内部使用stopSelf()
,但服务不会停止。
谢谢 ps 我的第一篇文章,请原谅我可能缺少的规范。
我有一个服务,在onCreate()
期间启动了一个线程。该线程监控硬件(IOIO),并在断开连接时结束,因此它基本上是一个无限循环。从活动中停止服务可以正常工作,并且线程也会在onDestory()
中停止。
我的问题是,如果线程死亡(例如由于异常),是否可以停止生成它的服务。
我尝试在线程代码内部使用stopSelf()
,但服务不会停止。
谢谢 ps 我的第一篇文章,请原谅我可能缺少的规范。
我认为你想要的是使用Handler。基本上,为你的服务创建一个处理程序(确保它是最终的,这样你就可以在所有线程中使用)。然后在另一个线程中,调用:
myServiceHandler.post(new Runnable(){
public void run(){
stopSelf();
}
}
private Intent thisIntent;
public int onStartCommand (Intent intent, int flags, int startId) {
thisIntent = intent;
在服务内部的线程中:
stopService(thisIntent);