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í,
- Cómo utilizar AsyncTask clase para actualizar el progreso de copiar un archivo de otro directorio?
- Actualización de la barra de progreso en la vista de lista
- Android: presione el botón Atrás mientras AsyncTask se está ejecutando
- Fatal Spin-On-Suspend / Stuck en ThreadID
- Error de Android: java.net.SocketException: Socket cerrado
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?
- Actualización del diálogo de progreso en Activity from AsyncTask
- ¿Es posible determinar el tamaño del archivo que se va a descargar?
- ListView es muy lento - android
- AsyncTask's doInBackground inicia su ejecución demasiado tarde después de AsyncTask :: execute se llama
- AsyncTask - ¿qué parámetros se necesitan para extender y doInBackground?
- Retrofit call dentro de AsyncTask
- Si Asynctask se está ejecutando la actividad estará vivo incluso después del método finish ()?
- Error de Android Studio: "El método getText () debe ser llamado desde el subproceso de interfaz de usuario, el subproceso inferido actualmente es el trabajador
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.
- Cómo crear ProgressDialog sin ocultar la ventana de fondo
- Cómo actualizar mis actividades a fragmentos y evitar ClassCastException?