我使用的AsyncTask結束,這樣我想要的功能將立即執行,不會等到要執行到底..的AsyncTask執行的功能
,但由於某種原因,我爲什麼不執行在所有的過程結束!
我看了看其他的解決方案,發現線程應該在年底執行,但對於每次的AsyncTask它被稱爲應當執行..
這裏是我的代碼
private void LogMeIn()
{
string CheckValue;
// Here I call the AsyncTask
new GCM().execute(null,null,null);
//gcmRegID is a public variable and should has GCM value assigned to it by now, but I it is empty as GCM() has not been executed yet
//This is always return empty string
CheckValue = gcmRegID;
}
這是那的AsyncTask等到年底執行
//This is the AsyncTask
private class GCM extends AsyncTask<String, String, String> {
private String resp;
private Context context;
@Override
protected String doInBackground(String... params) {
GCMHelper gcmRegistrationHelper = new GCMHelper (
getApplicationContext());
try {
gcmRegID = gcmRegistrationHelper.GCMRegister("123456789");
} catch (Exception e) {
e.printStackTrace();
}
return gcmRegID;
}
}
我試圖把呼籲GCMRegister在onPreExecute,但我得到的是它必須是在主要的錯誤螺紋
這就像我在圈子裏我要去....
調用必須是在主線程和主線程將在函數結束時執行...
它是沒有辦法讓中間的GCM代碼!!!!
我怎樣才能使這個AsyncTask執行時,它叫?
感謝
會立即執行。但你沒有做任何事情。應該更好地查看文檔。 –
「gcmRegID是一個公共變量,應該有現在分配給它GCM值」 - 不,它不應該,因爲你的任務是異步運行,這意味着它不會阻止,並經過'執行行()立即進行呼叫。 –
你在哪裏調用'LogMeIn()'?嘗試使用斷點。 – petey