0
我想在Android中執行後臺任務以向API發送請求,但我無法按照自己的方式工作。單獨對象中的AsyncTask
這是我的腳本:
Activity類
public class SampleActivity extends Activity {
private ApiRequest ar;
private String parameters;
...
private void callApi() {
this.ApiRequest = new ApiRequest(this.parameters);
}
}
ApiRequest類
public class ApiRequest {
private String response;
public ApiRequest(parameters) {
new BackgroundTask().execute(parameters);
}
protected class BackgroundTask extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... args) {
// Do stuff here
}
@Override
protected void onPostExecute(String response) {
this.response = response;
}
}
不知怎的,我似乎無法更新從onPostExecute方法響應字符串。我知道onPostExecute應該更新UI線程,但我想先更新對象,這基本上在UI線程中運行(我認爲)。這是如何完成的?我真的找不到任何關於它的事情。
說真的,那是全部?好吧,我現在感到很傻。但它確實有效。我之前嘗試過,至少我開始輸入它,但由於Eclipse無法找到ApiRequest類的變量,我認爲這不是正確的方法。非常感謝! :) 編輯:哦,它沒有編譯;) – Yordi
因爲你的代碼中有很多其他錯誤隱藏了這個錯誤... public ApiRequest(parameters)... protected String doInBackground(String ... args ){ //在這裏做東西 } ...全部無效。如果你填寫正確,你會看到你的錯誤。 – ElDuderino
對不起,我沒有提到它。這是我寫的繪製圖片的示例代碼。這不是我的實際代碼。其餘的我的實際代碼運行:) – Yordi