在我的应用程序中,我需要调用两个 Web 服务以在应用程序启动时从服务器获取记录。我在异步任务和初始屏幕上做到了这一点,但它运行不正常。它先等待 aynsch 任务完成他的操作,然后再转移到下一个活动。
我希望我的应用程序应该在应用程序启动时在后台调用 web 服务,而不会阻止用户移动下一个活动。
任何帮助,将不胜感激。
在我的应用程序中,我需要调用两个 Web 服务以在应用程序启动时从服务器获取记录。我在异步任务和初始屏幕上做到了这一点,但它运行不正常。它先等待 aynsch 任务完成他的操作,然后再转移到下一个活动。
我希望我的应用程序应该在应用程序启动时在后台调用 web 服务,而不会阻止用户移动下一个活动。
任何帮助,将不胜感激。
**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();
}
您可以使用IntentService并获取详细信息并将其存储。
或者您可以使用Service,将其与活动绑定并在检索到数据时发送数据。
此外,您可以导航到第二个活动并调用 AsyncTask 以获取详细信息并在完成后更新 UI。
如果检索到的数据是全局数据并被多个活动使用,则将其存储在Application类中并添加 stateChangeListener 并在从后台服务或 AsyncTask 更新时收到通知。
使用异步任务,您可以在后台线程中运行 Web 服务调用,并且您的 UI 线程不会被阻塞,您可以使用 runonuithread 在后台调用下一个活动,但它可以提供无缝解决方案。所以最好先等完成后台进程