Java 声明中出现Android异步任务错误
我收到以下错误:“没有Datagetter类型的封闭实例可访问。必须使用Datagetter类型的封闭实例(例如x.new A(),其中x是Datagetter的实例)限定分配。”我的代码是Java 声明中出现Android异步任务错误,java,android,android-asynctask,Java,Android,Android Asynctask,我收到以下错误:“没有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
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");
}
}
公共类AsyncCallWS扩展了AsyncTask{
受保护的Void doInBackground(字符串…参数){
Log.i(标签“doInBackground”);
getDataFromWebservice();
返回null;
}
受保护的void onPostExecute(void结果){
Log.i(标记“onPostExecute”);
//tv.setText(华氏+“°F”);
}
受保护的void onPreExecute(){
Log.i(标记“onPreExecute”);
//tv.setText(“计算…”);
}
受保护的void onProgressUpdate(void…值){
Log.i(标记“onProgressUpdate”);
}
}
更改方法签名
public static void initializeValues()
到
更改方法签名
public static void initializeValues()
到
实例化异步任务的方法是
static
。但是,AsyncCallWS
似乎是一个非静态的内部类。非静态内部类持有对父对象的引用,因此在没有父对象的情况下无法访问
可能您的异步任务应该声明为
静态
——通常异步任务非静态是编程错误。实例化异步任务的方法是静态
。但是,AsyncCallWS
似乎是一个非静态的内部类。非静态内部类持有对父对象的引用,因此在没有父对象的情况下无法访问
可能您的异步任务应该声明为static(静态)——通常异步任务非静态是编程错误。,因为您使用“static”方法创建新对象。您应该向AsyncCallWS类添加修饰符“static”,例如:
public static class AsyncCallWS extends AsyncTask<String, Void, Void> { ...... }
公共静态类AsyncCallWS扩展了AsyncTask{……}
因为您使用“静态”方法创建新对象。您应该向AsyncCallWS类添加修饰符“static”,例如:
public static class AsyncCallWS extends AsyncTask<String, Void, Void> { ...... }
公共静态类AsyncCallWS扩展了AsyncTask{……}
在哪一行出现该错误?AsyncCallWS task=new AsyncCallWS();这一行给我提供了错误可能的重复项,您将从哪一行获得该错误?AsyncCallWS task=new AsyncCallWS();这行给了我一个可能的副本