这是我的帖子:
我试图让自己尽可能清楚:
- 我的应用程序中的类的描述
- 代码架构的描述(由服务和活动)
- 描述应该发生的事情
- 描述实际发生的事情
- 日志猫
- 源代码
应用类说明
我的申请中有:
- 启动时启动的服务,由
MAJService
类管理 - 由
ConsoNRJ
班级管理的活动 - 一个工作类,它将通过 HTTP 获取 HTML 页面,称为
MAJDonnees
- 一个被调用的助手类,
InfosConso
它将实例化一个MAJDonnees
工作者。
处理说明
当服务启动时,它将:
- 创建一个
InfosConso
对象 - 这个
InfosConso
对象将创建一个MAJDonnees
- 这个
MAJDonnees
对象将使用 HTTP 查询HttpURLConnection
该活动几乎相同:
- 创建一个
InfosConso
对象 - 这个
InfosConso
对象将创建一个MAJDonnees
- 此
MAJDonnees
对象将创建一个AsyncTask
,然后使用HttpURLConnection
您可以看到一个可以帮助您理解我的代码的图表:
code.google.com/p/consonrj/wiki/CodeStructure
应该发生什么
由于 Activity 和 Service 基本上运行相同的代码(在MAJDonnees
类中),它们的行为方式应该完全相同:获取 HTML 页面并解析它们
实际发生了什么
从服务运行时,在HttpURLConnections
处理时返回错误结果MAJDonnees
。调用的HttpURLConnections
实例h
给出了无效的 HTTP 响应:h.getResponseCode()
返回 -1。
我不知道如何获得更多的调试信息。
但是,如果活动已启动,HTTP 连接在处理时工作MAJDonnees
,确实h.getResponseCode()
返回 200(HTTP 200 OK)。
那么如果服务再次运行(它计划每 x 分钟运行一次),HTTP 连接就会工作!
日志猫
您可以先运行服务的 logcat,然后运行活动,然后再运行服务,然后查看行为。
http://pastebin.com/DGc8fym2
对不起是法语,希望你还能猜到!:)
源代码
如果您愿意,可以在以下位置查看整个源代码:
code.google.com/p/consonrj/source/browse/#svn/trunk
我希望你能帮我调试这个!我的服务需要在设备启动时和每 x 小时/天从 Internet 获取数据,并且不需要首先启动活动!
谢谢。