我正在尝试为 Android 制作一个简单的 Web 服务器应用程序,它从 URL 中获取查询字符串,通过 USB 串行电缆传输到串行设备,并将接收到的响应作为文本/纯文本返回。Web 服务器被实现为一个扩展 Thread 的类,并且它和 USB 串行代码工作了一段时间。(我认为 TCP/IP 网络操作需要一个单独的线程。)
我希望服务器在连接 USB 串行电缆时启动,并在拔下电缆时停止。通过这样做,我可以利用“每次连接设备时启动这个应用程序”,所以我不必每次都向用户询问 USB 权限。没有 UI,所以最初我以为我可以制作一个仅服务的应用程序,但我发现 Android 假定它正在启动一个带有 Main Activity 的应用程序。连接电缆后,我确实可以正常启动。我想我最终可以用半透明屏幕制作一个空的主要活动,并在启动服务后调用完成。而且我有一个广播接收器,它似乎可以捕获 USB 断开连接事件。
我正在苦苦挣扎的是,Android 经常说不幸的是您的应用程序已停止工作并想要关闭它(终止进程)。它似乎确实挂断了 UI,不知道如何,因为我已经调用了完成。即使在“您的应用程序已停止工作”消息出现时,Web 服务器线程仍然可以正常工作,并且它会继续正常工作,直到我回答是,这会终止进程。
在服务中我有什么特别的事情要做,因为我希望在空的主要活动完成后保持服务运行?我在正确的轨道上吗?服务是否需要在自己的进程中运行?
提前感谢您能给我的任何见解。