在Android中实现服务

时间:2011-11-25 13:36:27

标签: android

场景:将文件列表上传到服务器。

  • 有两台服务器,一台文件服务器和一台服务器。一个应用程序网络服务器。

  • 应用程序服务器提供的令牌超时:5分钟

  • 当文件上传到文件服务器时,需要每隔5分钟同时向应用程序服务器发出另一个请求,因此令牌不会过期。

目前我正在使用AsyncTask实现文件上传。为了创建另一个令牌请求,我的方法应该是什么?

我应该运行一个每隔5分钟向应用服务器发送一个请求的服务吗?

当令牌请求继续运行时,我还需要处理呼叫中断方案(暂停状态)。

欢迎任何提示/建议。

3 个答案:

答案 0 :(得分:0)

创建第二个AsyncTask,用于检索非常五分钟。服务与否,这是您的选择。

通常情况下,如果您的应用上传过程需要很长时间才能完成,那么通过服务完成此操作总是一个好主意。

答案 1 :(得分:0)

最好的方法(imo)将是:

  1. 管理上传到文件服务器的文件的服务。
  2. 检索令牌的广播接收器。
  3. 现在,当上传开始并且您需要令牌时,请为当前时间安排闹钟(因此立即执行)并且闹钟应该启动Boardcastreceiver。

    然后,在广播接收器onReceive方法中,您应该查看该服务的最新情况。如果它仍在运行(仍在上传文件),您应该重新安排一个将在5分钟内触发的警报。

    当闹钟被触发时 - 在广播接收器获得另一个令牌之前,你应该确保它仍然需要。

    AsyncTask不是一个好主意,因为当您的活动被销毁时,我几乎可以肯定它死亡。并且您不希望让用户等待这么多时间,直到文件被上传,是吗?

答案 2 :(得分:0)

只需检查令牌的年龄即可开始上传。在发送之前,在与文件上传相同的线程中检索令牌,以确保令牌有效。