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