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