2

我喜欢 IntentService,并在我必须编写服务时尝试使用它。

但是,当应用程序启动时,我必须至少执行一次长时间的任务(约 4 秒)。任务是加载原始资源(证书)并将其用于所有 Web 服务调用。目前,我每次进行 Web 服务调用时都会加载它,这显然不是一个真正的解决方案。

因为 IntentService 是无状态的,所以我无法在请求之间保留证书。除了编写“正常”服务并仔细实施生命周期以检查何时应该(重新)加载证书之外,我还有什么选择。

谢谢。

4

1 回答 1

1

任务是加载原始资源(证书)并将其用于所有 Web 服务调用。

加载原始资源需要几毫秒。使用 Traceview 找出为什么需要大约 4 秒。

目前,我每次进行 Web 服务调用时都会加载它,这显然不是一个真正的解决方案。

每次加载原始资源似乎是一个完全可行的解决方案。这不像你有其他选择。

除了编写“正常”服务并仔细实施生命周期以检查何时应该(重新)加载证书之外,我还有什么选择。

那将是一个非常糟糕的主意。

用户非常不喜欢让服务在不应该运行时保持运行的开发人员。用户使用任务杀手和设置中的强制停止来攻击这样的应用程序。一旦发生这种情况,在 Android 3.1+ 上,您的应用将永远不会再次运行,直到用户启动您的一项活动。

此外,Android 将在一段时间后终止您的永久服务,再次保护用户免受编写不佳的服务的影响。

而是专注于优化约 4 秒的操作。

于 2011-11-03T13:22:04.877 回答