我目前正在使用幾個AsyncTasks處理網絡連接的Android應用程序。AsyncTask工作流程
這是建立連接並調用處理麥克風輸入的新任務的第一項任務。
private class establishConnectionTask extends
AsyncTask<String, Integer, String> {
@Override
protected String doInBackground(String... params) {
try {
// initialize connection
initConnection();
MicrophoneTask micTask = new MicrophoneTask();
micTask.execute("");
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return "Executed";
}
@Override
protected void onPostExecute(String result) {
mReadInputTask = new readInputTask();
mReadInputTask.execute("");
super.onPostExecute(result);
}
一切工作正常,連接工作,我可以傳輸數據。 MicrophoneTask也在做這件事。
這裏談到的問題:
在onPostExecute方法,我創建一個新的AsyncTask這應該處理所有的網絡輸入。
這是readInputTask的樣子:
private class readInputTask extends AsyncTask<String, Integer, String>
{
@Override
protected void onPreExecute()
{
Log.d("DEBUG", "pre");
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
// blocking readInput method
Log.d("DEBUG", "doInBackground");
}
@Override
protected void onPostExecute(String result) {
Log.d("DEBUG", "post");
super.onPostExecute(result);
}
}
的readInputTask莫名其妙地卡在readInputTask的onPreExecute方法。我得到的唯一結果是「pre」,儘管我也期待「doInBackground」和「post」。
有沒有人看到錯誤或知道這個解決方案?
任何幫助表示讚賞!
我覺得'doInBackground'在日誌行之前拋出一個異常。你有沒有在Logcat中看到任何錯誤? –
不會引發異常。我只看到我的日誌行。 – Al0x