声明中的Android AsyncTask错误

Esa*_*BIS 1 java android android-asynctask

我收到此错误"无法访问Datagetter类型的封闭实例.必须使用Datagetter类型的封闭实例限定分配(例如xx A(),其中x是Datagetter的实例)." 我的代码是

public static void initializeValues
    (String _NAMESPACE , String _URL , String _SOAP_ACTION , 
String _METHOD_NAME , String _PARAM_NAME , String _PARAM_VALUE)

    {
        NAMESPACE = _NAMESPACE ;
        URL = _URL ;
        SOAP_ACTION = _SOAP_ACTION ;
        METHOD_NAME = _METHOD_NAME ;
        PARAM_NAME = _PARAM_NAME ;
        PARAM_VALUE = _PARAM_VALUE ;
        TAG = "Name of log" ;


        AsyncCallWS task = new AsyncCallWS();
        //Call execute
         task.execute();

    }
Run Code Online (Sandbox Code Playgroud)

AsyncCallWS

public class AsyncCallWS extends AsyncTask<String, Void, Void> {

        protected Void doInBackground(String... params) {
            Log.i(TAG, "doInBackground");
            getDataFromWebservice();
            return null;
        }


        protected void onPostExecute(Void result) {
            Log.i(TAG, "onPostExecute");
        //    tv.setText(fahren + "° F");
        }


        protected void onPreExecute() {
            Log.i(TAG, "onPreExecute");
         //   tv.setText("Calculating...");
        }


        protected void onProgressUpdate(Void... values) {
            Log.i(TAG, "onProgressUpdate");
        }

    }
Run Code Online (Sandbox Code Playgroud)

laa*_*lto 6

您实例化asynctask的方法是static.然而,这AsyncCallWS似乎是一个非static内在的阶级.非静态内部类包含对父级的引用,因此在没有父对象的情况下无法访问.

可能应该声明您的异步任务static- 大多数情况下,asynctask非静态是一个编程错误.