我有一个服务,可以在onCreate()
期间启动一个帖子。该线程正在监视硬件(IOIO),并在断开连接后结束,因此基本上是无限循环。从Activity停止服务工作正常,线程也停止(以onDestory()
结束)。
我的问题是,如果线程死亡(比如因为异常),就可以停止产生它的服务。
我尝试在线程代码中使用stopSelf()
,但服务不会停止。
谢谢 ps我的第一篇文章,请原谅我应该遵循的任何遗漏的惯例。
答案 0 :(得分:3)
我认为你想要的是使用Handler。最后,为你的Sevrice创建一个处理程序(确保它是最终的,这样你就可以在所有线程中使用)。然后在你的另一个帖子中,打电话:
myServiceHandler.post(new Runnable(){
public void run(){
stopSelf();
}
}
答案 1 :(得分:0)
如何存储服务的Intent并直接停止它? 在服务中:
private Intent thisIntent;
public int onStartCommand (Intent intent, int flags, int startId) {
thisIntent = intent;
在服务内部的线程中:
stopService(thisIntent);