在我的应用程序中,我首先显示家庭活动。在家庭活动中我从webservice获取值并解析值并显示给用户。来自家庭活动用户点击它将显示到文章显示活动。来自artcile显示活动如果用户点击它将再次进入家庭活动。它会一次又一次地调用Web服务并解析它需要花费的时间。
如何在firsttime中存储webservice解析的值并获取所有activty的值。而不是一次又一次地调用webservice可以有人举例吗?
答案 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。处理这些场景也是如此。
希望这会有所帮助。