代码之家  ›  专栏  ›  技术社区  ›  Benoit Duffez

在某个活动执行HTTP连接之前,Android服务无法执行HTTP连接

  •  0
  • Benoit Duffez  · 技术社区  · 14 年前

    这是我的帖子:

    1. 我的应用程序中类的描述
    2. 代码体系结构的描述(按服务和按活动)
    3. 描述应该发生的事情
    4. Logcat公司
    5. 源代码

    应用程序类的描述

    • 一种在启动时启动的服务,由 MAJService
    • 由管理者管理的活动 ConsoNRJ
    • 通过HTTP获取HTML页面的工作类,称为 MAJDonnees
    • InfosConso 这将实例化一个 工人。

    处理的描述

    • 创建 InfosConso公司
    • InfosConso公司 少校
    • 少校 对象将使用 HttpURLConnection

    活动的作用几乎相同:

    • InfosConso公司 对象
    • 对象将创建 少校
    • 少校 对象将创建 AsyncTask ,然后使用 可设定代理


    code.google.com/p/consonrj/wiki/code结构


    该怎么办

    代码(在 少校 类),它们的行为应该完全相同:获取HTML页面并解析它们

    到底发生了什么

    从服务运行时 HttpURLConnections . 这个 HttpURL连接 调用的实例 h 提供无效的HTTP响应: h.getResponseCode()
    我不知道如何获得更多的调试信息。

    但是,如果活动已启动,则在中处理时HTTP连接将工作 少校 ,独立 h、 getResponseCode() 返回200(HTTP 200 OK)。

    那么 如果服务再次运行(计划每x分钟运行一次),HTTP连接将正常工作!


    您可以先运行服务的logcat,然后运行活动,再运行服务,然后查看行为。
    http://pastebin.com/DGc8fym2

    源代码

    如果需要,您可以在以下位置查看整个源代码:
    code.google.com/p/consonrj/source/browse/#svn/trunk


    我希望你能帮我调试这个!我的服务需要在设备启动时每隔x小时/天从Internet获取数据,不需要先启动活动!

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Benoit Duffez    14 年前

    非常感谢你的建议布拉德。

    Compte 类,该类从手机内存中的文件加载用户凭据,但服务没有加载。因此,该服务没有登录到HTML页面的用户凭据。因此,服务发送了带有空凭据的登录请求,直到活动加载了凭据。

    孔特 同学们,效果不错。 我很抱歉,我没有更彻底地调查我的应用程序。