如何围绕20分钟的http会话构建我的Android应用程序

时间:2011-06-07 18:29:15

标签: android multitasking

我有一个我正在构建的Android应用程序,它基于一个Web应用程序,可以让用户登录并预订一本书(思考库)。因为您可以保留书籍,所以需要有一个有效的会话(确切地说是cookie)

这是我的问题 - 当我有20分钟的约束时,如何处理多任务处理?

我是否在应用启动的整个时间内(在应用程序全局对象中)保持计时器运行 - 然后在恢复时验证此计时器是否在20分钟的窗口内,如果是,则假设cookie是好的 - 否则请他们再次登录

或者,我是否会在简历中吹走(在我的应用程序中)加载的活动,并在每次用户点击主屏幕上的图标时启动应用程序

还是其他什么?我只是在我的iPhone版本中避免这种情况,因为我目前不支持多任务处理(如果安卓解决方案适合,我可能会这样做)

提前谢谢!

2 个答案:

答案 0 :(得分:5)

通常人们通过假设他们拥有的任何cookie是有效的并且让服务器告诉他们是否需要再次登录来处理这个问题。对于他们无法控制的这方面,客户应该很少(阅读:无,如果可能)情报。

答案 1 :(得分:1)

您有多种选择,哪一项最佳将取决于应用程序细节

  • 您可以将计时器设置为在20分钟后注销,作为应用程序的一部分或作为活动的一部分(尽管在后一种方法中,如果重新启动活动,它将丢失)。

  • 可以将警报设置为触发Intent以在20分钟后显示登录屏幕(如果您想强制重新登录)或设置标志LOGGED_IN = false如果不是。

    < / LI>
  • 您可以在Application对象中设置一个长字段,并在onDraw()期间或在获取新页面时或在您认为合适时查询它:如果超过20分钟,则退出。

  • 如果应用程序将从服务器一次一页地提取书籍,那么我会在POST请求中添加时间令牌,让服务器决定是返回页面还是发送401错误。然后,您将通过显示登录屏幕来处理错误,并在登录成功时重新发布