在我的活力中,我需要運行兩個後臺服務。兩個後臺服務android
主要後臺服務:
class loadingTask extends AsyncTask<Void, Void,Void> {
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
pd = ProgressDialog.show(context, "", "Chargement en cours..", true, false);
super.onPreExecute();
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
pd.dismiss();
}
...
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
getxml = Util.CallWebService("");
return null;
}
}
二後臺服務。
class mloadingTask extends AsyncTask<String, Void, String> {
protected String doInBackground(String... urls) {
SAXHelper sh = null;
try {
sh = new SAXHelper(urls[0]);
} catch (MalformedURLException e) {
e.printStackTrace();
}
sh.parseContent("");
return "";
}
protected void onPostExecute(String s) {
pd.dismiss();
}
}
在我onCreate()
方法我想打電話給第一個背景,當它完成加載第二個後臺服務啓動。我的後臺服務部分如下。
AsyncTask<Void, Void,Void> loadTask = new loadingTask().execute();
if(loadTask.getStatus()==AsyncTask.Status.FINISHED){
new mloadingTask().execute(getxml);
System.out.println("getxml: "+getxml);
}
但是第二個後臺服務似乎並沒有開始。我也沒有收到印刷品。我想我錯過了一個步驟,或者android不允許在同一活動中使用多個後臺服務。請幫忙。
執行loadTask後,您立即檢查它是否完成。如果你做任何需要超過50ms的事情,它將永遠不會通過支票。你應該創建一些回調(接口可以很好地工作) –
你能舉個例子嗎? – yakusha