Conseguir un no puede hacer una redfrence estática a una no estática methed cuando llamo AsyncTask <Void.exicute

Estoy utilizando AsyncTask para cargar mapas de bits en el fondo. Creé una clase Mybackground que hereda de AsyncTask. Si hago lo siguiente funciona,

new MyBackground().execute(); 

Pero cuando lo llamo así,

 MyBackground mBackground=new MyBackground(); mBackground.p1=1; mBackground.p2="tets"; MyBackground.execute(); 

Me sale el error no puede hacer un refrence estático a un no estático. ¿Por qué estoy recibiendo este error. ¿Hay alguna forma de hacer esto? Si no lo que sería una buena manera de pasar en 2 diferentes argumentos, ya que ejecutar sólo toma en 1 parámetro?

mBackground.execute() llamar a mBackground.execute() que llama al método execute de una instancia particular de su clase MyBackground .

Llamar a new MyBackground().execute() crea una nueva instancia de MyBackground y luego llama a ejecutar en que, por lo que no obtiene el error.

Eche un vistazo a Java: métodos estáticos y de instancia si no está seguro de cuál es la diferencia entre un método estático y de instancia.

Los métodos estáticos no requieren que exista una instancia de ese tipo, y las propiedades estáticas se comparten entre todas las instancias de una clase.

Si desea pasar algunos datos a su AsyncTask puede crear un nuevo constructor para él:

 public class MyBackground extends AsyncTask<Void, Void, Void> { ... private int p1; private String p2; public MyBackground(int p1, String p2) { this.p1 = p1; this.p2 = p2; } ... } 

A continuación, utilice:

 MyBackground myBackground = new MyBackground(1,"tets"); myBackground.execute(); // or MyBackground myBackground = new MyBackground(1,"tets").execute(); 

Joseph Earl tiene una buena explicación de por qué está recibiendo el error de referencia estática.

  • ¿Está todavía utilizando AsyncTask para cargar elementos de listView en segundo plano?
  • Obtener No puede crear el controlador dentro de hilo que no ha llamado Looper.prepare () con código que funcionó para Android 4
  • Android Refreshing Fragment View después de AsyncTask
  • Si se cancela una actividad, ¿funciona el AsyncTask?
  • Android Model-View-Presenter (MVP) Cómo devolver AsyncTask de ejecución larga
  • Android - Cancelar AsyncTask con fuerza
  • Cómo cancelar AsyncTask ejecutar desde el elemento oculto en la función getView () en Android?
  • Cómo recibir el estado de la intención del gestor de descargas hasta que el éxito de la descarga o no
  • Patrón para hacer AsyncTask "procedural"
  • No se puede actualizar la vista de lista de android en onPostExecute
  • ¿Cómo utilizar AsyncTask para mostrar un ProgressDialog mientras realiza un trabajo de fondo en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.