0

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

如何在第一次存储 web 服务解析的值并获取所有活动的值。而不是一次又一次地调用 web 服务,任何人都可以举个例子吗?

4

2 回答 2

0

当您第一次收到响应时,设置一个布尔值。并始终在调用 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。同时处理这些场景。

希望这可以帮助。

于 2012-12-06T08:06:05.307 回答
0

您能否显示一小段代码,显示您调用服务的位置。

另请注意

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

就是本文档所说的:

onCreate()

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

于 2012-12-06T07:17:23.920 回答