我有一个应用有一项服务,可以将人们拍摄的照片卸载到服务器上。
具体来说,用户被发送到设备的 native 相机拍摄照片,然后照片通过 intent 返回到他们“批准”的应用程序。
这种批准行为将其保存到文件系统中,服务每隔 x 秒出现一次,通知等待卸载的文件并将其卸载。
一切正常。
但是...在连接不良但足以进行 HTTP 握手的情况下,应用程序会发现自己处于一种状态,即使服务中发生了卸载,但在用户返回 *返回到我的应用程序从照片拍摄(Android 正在将 4-8mb 照片返回给我的批准 Activity ,我的应用程序挂起 - 有时足够长以引发“你想杀死还是等待”提示。最终(如果你等待)它确实成功返回到应用程序。
我已经确认这与网络有关,因为当连接很强时(或者当应用程序处于飞行模式时 - 因此上传会立即失败)一切都非常顺利。 *唯一发生这种情况的情况是服务中的卸载程序受到连接问题的阻碍。
所以,我的问题是 - 我该怎么办?有什么方法可以隔离服务而不会对应用程序产生更大的影响吗?我的解决方案是编写一个位于设备上的合作伙伴应用程序,只是为了卸载文件(这甚至可以解决问题吗?)。
HERE是向用户提供 WAIT/KILL 提示时我得到的报告。我不确定该怎么做。
最佳答案
答案原来是服务实际上在主显示线程上运行(我被误导了,当你在服务中进行 HTTP 调用时,你不必手动在单独的线程中运行它) .
http://gmariotti.blogspot.com/2013/03/antipattern-freezing-ui-with-service.html
关于android - 有没有办法限制服务分配的资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32894077/