在Android中实施服务
问题描述:
场景:上传文件列表到服务器。在Android中实施服务
有两个服务器,一个文件服务器&一个应用程序的网络服务器。
令牌通过具有应用服务器超时设置:5分钟
当一个文件被上传到文件服务器,另一个请求需要被同时进行,每5分钟到应用程序服务器,所以令牌不会过期。
目前我正在使用AsyncTask实现文件上传。为了创建另一个令牌请求,我应该采取什么方法?
我应该运行一个服务,每隔5分钟向应用程序服务器发送一个请求吗?
我还需要处理呼叫中断情况(暂停状态),当令牌的请求应该继续其操作。
欢迎任何提示/建议。
答
创建第二个AsyncTask以检索每五分钟。服务与否,这是您的选择。
通常情况下,如果您的应用的上传过程花费很长时间才能完成,那么通过服务完成此操作总是一个好主意。
答
最好的方法(IMO)将是:
- 它管理上传到文件服务器上的文件的服务。
- 检索令牌的广播接收器。
现在,当上传开始并且您需要令牌时,为当前时间安排警报(以便立即执行),并且警报应该启动boardcast接收器。
然后,在广播接收机onReceive
方法,你应该检查什么与服务。如果它仍在运行(仍在上传文件),您应该重新计划在5分钟内触发的警报。
当警报被触发时 - 在广播接收器获得另一个令牌之前,您应该确保它仍然是需要的。
AsyncTask不是一个好主意,因为我几乎可以肯定它死亡当你的活动被破坏。而且你不想让用户等待上传文件,直到你上传了这些文件?
答
通过检查令牌的年龄来简单地开始上传。在发送文件之前,在与文件上传相同的线程中检索令牌,以确保令牌有效。