作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,这里的问题是我有一台通过蓝牙连接到手机的摄像机。与设备的所有通信都是通过 android 服务进行的。该服务会定期使用 GPS 坐标更新相机。不幸的是,该服务不是由我的公司编写的,我们只能控制启动它并向其发送命令(但是,如果连接到设备,它会自行执行 GPS)。一旦我们的应用程序启动了服务,我们就会尝试连接到任何包含我公司 OUI 的配对设备。一旦设备断开连接(可能关闭或电池耗尽),它不会自动重新连接,直到用户重新启动我们的应用程序。因此在这种情况下 GPS 坐标不会发送到相机。
这是一个问题,因为用户(对这些服务一无所知)会认为,如果他重新打开设备,它应该已连接。
所以我想我可以将 AlarmManager 与广播接收器或服务一起使用(可能是 Intent 服务,因为连接需要几秒钟才能完成)。也许每隔几分钟我就可以检查一下与相机的连接。如果它的存在只是退出,如果没有尝试连接(如果有配对的设备)。
但是问题是如果我的应用程序已经在运行怎么办?如果是,则用户控制连接到设备(提示他们连接)。我是否需要使用共享首选项或类似的东西来判断我的应用程序是否正在运行/关闭?有什么方法可以从服务中判断应用程序是否正在运行?我可以看到这变得棘手。如果有人知道如何处理这个问题,请告诉我。
最佳答案
我建议采用以下方法:
这样,如果应用程序仍在运行,服务将不会启动,一旦应用程序关闭,警报也不会停止。
关于android - 使用警报管理器启动服务,但前提是主应用程序未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10301841/
我是一名优秀的程序员,十分优秀!