我需要创建一个测试应用程序,它允许启动/停止在后台运行多个线程的持久后台服务。 (主要是WebSocket服务器和Tango定位服务)。它需要持久化,所以我可以启动Web浏览器并连接到ws套接字。
根据我的阅读,申请的结构应如下:
活动 - >服务(持久性) - > (服务(探戈)+线程(WS))
持久性服务需要使用startForeground()
作为前台服务运行,并作为单独的进程(在清单中设置),以便在活动关闭时不关闭。
现在,我得到了一些问题: 1)我目前的理解是否正确?或者我是以错误的方式接近这个。 2)如果我以后想要停止服务,我想开始活动,并能够从那里停止它。活动如何知道服务正在运行以及它如何连接到服务?我需要实现绑定部分吗?怎么样? 3)我可以实现2)使用通知而从那里关闭它吗?
答案 0 :(得分:0)
这是我能想到的最好的东西,到目前为止似乎有效。但是,如果有人有更好的方法来实现这个或更“正确”,我将改为答案。
我的解决方案归结为我上面所说的。唯一的问题是我必须在新类中实现Runnable来传递指针。 非常重要的是,在服务的主线程中不需要执行网络代码,这需要在单独的线程中。