0

我有一个我正在编写的适用于 Android 的 Xamarin 应用程序,并且我需要将一些信息从我的应用程序发送到 Web 服务以进行保存。我对 Android 框架还比较陌生,但似乎 IntentService 是一个合理的选择,因此我可以从我的主线程中卸载该工作。

但是,我对 IntentService 如何管理发送给它的请求的工作队列有点模糊。具体来说,当处理过程中出现故障时,服务的工作队列请求会发生什么情况?例如,在我的情况下,假设没有可用的 wifi/3G 连接、Web 服务器不可用等。我是否需要捕获这些问题并再次将它们重新提交给服务,或者是否有办法在服务内部处理它们?

通读了 Android 服务文档(http://developer.android.com/guide/components/services.html)后,似乎请求按照接收和丢弃的方式进行处理;我没有看到任何关于在发生某些事情时将请求保留在队列中、由开发人员手动重新添加到队列等方面的信息。

我错过了什么吗?还是我应该滚动自己的服务类来处理这些问题?任何想法将不胜感激。谢谢。

4

1 回答 1

1

意图服务只会执行您在onHandleIntent(Intent intent)方法内部告诉它执行的操作。没有内置错误处理,因为并非所有实现都IntentService将执行网络请求或任何特定任务。唯一的保证是您的代码onHandleIntent()将位于工作线程上。

于 2013-08-09T17:06:46.640 回答