1

我想知道是否有任何方法可以运行后台线程,它可以在所有活动之后运行。我需要在我的移动应用程序中更新我的 PHP 服务器上的会话,但我不想在每个 AsyncTask 类的 doInBackground 中创建它,而是在某个线程中,它在所有活动后面工作并每 15 分钟连接到服务器,以更新会话,所以我可以将 SID 存储在数据库中,并在每次需要时使用它。

我阅读了有关 Handler 和 Service 的信息,但据我了解,它们仅在特定活动中起作用,而不是在整个应用程序的背景中起作用,并且我无法根据需要与它们续订会话。我错了吗?

还是可以用 RoboSpice lib 以某种方式处理它?我听说过它,但从未检查过它的功能。

抱歉,如果我错过了已经提出和回答的类似问题。

4

1 回答 1

1

RoboSpice 旨在使编写在后台执行的网络请求变得容易。所以,是的,它可以帮助从客户端扩展服务器端的会话。

然而,RoboSpice 与计时器无关。因此,要实现这一点,您将需要:

  • 使用安卓的报警管理器
  • 然后给它一个挂起的意图来唤醒你自己的服务
  • 该服务可以使用 RoboSpice 创建一个将扩展服务器会话的网络请求。

详情在这里:http: //developer.android.com/training/scheduling/alarms.html

当您不再需要会话扩展时,不要忘记从警报管理器中正确取消注册,否则会耗尽电池电量。

于 2014-04-12T10:30:47.143 回答