我正在编写一个应用程序,其中远程服务必须始终运行并执行这些任务:
- 创建并保持与另一台设备的蓝牙连接
- 定期向该设备询问信息(1 秒)
- 定期获取 GPS 位置(1 秒)
- 每 1 秒将以前的数据写入文本文件
为此,我从远程服务创建了 2 个线程:一个用于数据请求(loopThread),一个用于 GPS 位置(gpsThread)。loopThread 在从蓝牙设备获取数据后应该向 gpsThread 询问位置。它必须非常快,这就是我使用线程的原因,所以我可以将位置存储在可以发送的变量中。
远程服务和 2 个线程应该通过处理程序进行通信。
问题是:我可以让每个处理程序与远程服务通信,但不能相互通信。
我创建这样的线程:
myGPSThread = new GPSThread(mainServiceHandler,locationManager);
myLoopThread = new AcquisitionThread(mainServiceHandler, sockIn, sockOut);
我尝试通过消息将一个处理程序发送给另一个处理程序,但处理程序似乎不可打包。
有没有人可以解决这个问题?