【问题标题】:Android AsyncTask error in declaration声明中的 Android AsyncTask 错误
【发布时间】:2014-02-09 15:43:12
【问题描述】:

我收到此错误“无法访问 Datagetter 类型的封闭实例。必须使用 Datagetter 类型的封闭实例限定分配(例如 x.new 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();

    }

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");
        }

    }

【问题讨论】:

标签: java android android-asynctask


【解决方案1】:

更改您的方法签名

public static void initializeValues()

public void initializeValues()

【讨论】:

    【解决方案2】:

    实例化异步任务的方法是static。但是,AsyncCallWS 似乎是非static 内部类。非静态内部类持有对父对象的引用,因此没有父对象就无法访问。

    您的异步任务可能应该声明为static - 最常见的非静态异步任务是编程错误。

    【讨论】:

      【解决方案3】:

      因为您在“静态”方法中创建了新对象。您应该将修饰符“static”添加到 AsyncCallWS 类,例如:

      public static class AsyncCallWS extends AsyncTask<String, Void, Void> { ...... } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多