0

在我的应用程序中,我需要调用两个 Web 服务以在应用程序启动时从服务器获取记录。我在异步任务和初始屏幕上做到了这一点,但它运行不正常。它先等待 aynsch 任务完成他的操作,然后再转移到下一个活动。

我希望我的应用程序应该在应用程序启动时在后台调用 web 服务,而不会阻止用户移动下一个活动。

任何帮助,将不胜感激。

4

3 回答 3

1
**call Asyn server call wherever you need**
getServerResponse();
"startnewactivity" here
finish current activity here 


**Asyn server call**
public void getServerResponse(){
    new AsyncTask<Void, Void, Object>() {

        @Override
        protected Object doInBackground(Void... params) {
            //write your server response code here
            return null;
        }

        @Override
        protected void onPostExecute(Object result) {
            super.onPostExecute(result);
        }
    }.execute();
}
于 2013-09-03T06:32:14.277 回答
0

您可以使用IntentService并获取详细信息并将其存储。

或者您可以使用Service,将其与活动绑定并在检索到数据时发送数据。

此外,您可以导航到第二个活动并调用 AsyncTask 以获取详细信息并在完成后更新 UI。

如果检索到的数据是全局数据并被多个活动使用,则将其存储在Application类中并添加 stateChangeListener 并在从后台服务或 AsyncTask 更新时收到通知。

于 2013-09-03T06:22:02.460 回答
0

使用异步任务,您可以在后台线程中运行 Web 服务调用,并且您的 UI 线程不会被阻塞,您可以使用 runonuithread 在后台调用下一个活动,但它可以提供无缝解决方案。所以最好先等完成后台进程

于 2013-09-03T06:22:55.747 回答