【问题标题】:How to solve the calling the web services again and again when i press the activity again?当我再次按下活动时,如何解决一次又一次调用Web服务?
【发布时间】:2012-11-24 04:25:56
【问题描述】:

在我的应用程序中,我首先显示家庭活动。在家庭活动中,我从 web 服务获取值并解析值并显示给用户。从家庭活动用户单击它将显示到文章显示活动。来自 artcile 显示活动如果用户点击它会再次回到首页活动。它一次又一次地调用网络服务并解析它需要时间的值。

如何在第一次存储webservice解析的值并获取所有activty的值。而不是一次又一次地调用webservice,有人可以举个例子吗?

【问题讨论】:

  • 设置布尔变量初始化并在onCreate()中检查

标签: android android-layout android-emulator android-widget android-webview


【解决方案1】:

你能显示你的代码的小sn-p,显示你调用服务的位置吗?

还要注意

服务中的onCreate 方法只运行一次,直到服务的整个生命周期。但是,可以通过调用startService 多次调用onStartCommand 方法。如果您的服务被销毁然后再次运行,则将再次调用onCreate

This 是本文档所讲述的内容:

onCreate()

系统在首次创建服务时调用此方法,以执行一次性设置过程(在调用onStartCommand()onBind() 之前)。如果服务已在运行,则不会调用此方法。

【讨论】:

  • 我正在使用 webservices(xml)。我正在从服务中获取数据。如何在不反复访问服务器的情况下使用该服务?当我从 b 开始活动到 a 时?
【解决方案2】:

在您第一次收到响应时设置一个布尔值。并始终在调用 web 服务之前检查变量。

还将响应值存储在应用程序类变量或活动中的静态/非静态变量中。

boolean callWebService = true;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //your code here

    if(callWebService){
        //call webservice in background thread -> Async Task, Service, whatever
        callWebService = false;
    }else{
        //process stored response
    }

}

另外请记住,如果不处理配置更改将破坏活动并再次调用 onCreate。同时处理这些场景。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多