Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 当我再次按下“活动”时,如何解决反复调用web服务的问题?_Android_Android Layout_Android Emulator_Android Widget_Android Webview - Fatal编程技术网

Android 当我再次按下“活动”时,如何解决反复调用web服务的问题?

Android 当我再次按下“活动”时,如何解决反复调用web服务的问题?,android,android-layout,android-emulator,android-widget,android-webview,Android,Android Layout,Android Emulator,Android Widget,Android Webview,在我的应用程序中,我首先显示主页活动。在主页活动中,我从webservice获取值,解析值并显示给用户。从主页活动用户单击,它将显示到文章显示活动。从artcile显示活动,如果用户单击,它将再次显示主页活动。它会一次又一次地调用web服务和解析值需要时间 如何在第一时间存储webservice解析的值并获取所有活动的值。有人能举个例子来代替一次又一次调用webservice吗?你能展示一个小代码片段,显示你调用服务的位置吗 还请注意 服务中的onCreate方法在整个服务生命周期内只运行一次。

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


如何在第一时间存储webservice解析的值并获取所有活动的值。有人能举个例子来代替一次又一次调用webservice吗?

你能展示一个小代码片段,显示你调用服务的位置吗

还请注意

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

本文件说明:

onCreate()

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

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

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

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


希望这有帮助

我正在使用webservices(xml)。我正在从服务获取数据。如何使用该服务而不反复点击服务器?当我从b启动活动到a时?设置布尔变量初始化并在onCreate()中检查它