当我再次按活动时如何解决一次又一次地调用Web服务?

时间:2012-12-06 07:04:22

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

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

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

2 个答案:

答案 0 :(得分:0)

您可以在显示调用服务的位置显示一小段代码。

另请注意

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

This就是这份文件所说的:

onCreate()

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

答案 1 :(得分:0)

当你第一次得到响应时,

有一个布尔值。并且在调用webservice之前始终检查变量。

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

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。处理这些场景也是如此。

希望这会有所帮助。