Hola.
Es mas que nada una duda teórica que me ha surgido a la hora de programar. No consigo tener muy claro estos dos tipos de objetos. Os pongo en situación.
Mi intención es que al ejecutar el MainActivity se compruebe si la base de datos ha sido creada. En caso negativo se crea en segundo plano (lanzamos un ProgressDialog ). Aqui es donde me he dado cuenta que no tengo claro el concepto de Context.
Código de MainActivity en el onCreate
    LoadDbAsync task = new LoadDbAsync(this);
    task.execute();Y código resumido de onPreExecute() en LoadDbAsync.java. mActivity es un objeto de tipo Activity
    pDialog = new ProgressDialog(mActivity);
    pDialog.setMessage("Cargando Base de datos...");
    pDialog.setCancelable(false);
    pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);El constructor de LoadDbAsync
//constructor
 public LoadDbAsync(Activity activity) {
        mActivity = activity;
    }Este código funciona sin ningún problema.
Pero en cambio el siguiente código no. MainActivity
        LoadDbAsync task = new LoadDbAsync(getApplicationContext());
    task.execute();onPreExecute() en LoadDbAsync.java
    pDialog = new ProgressDialog(context);
    pDialog.setMessage("Cargando Base de datos...");
    pDialog.setCancelable(false);
    pDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);El constructor de LoadDbAsync
 public LoadDbAsync(Context context) {      // TODO Auto-generated
 constructor stub       this.context = context;     }Me gustaría entender el por qué un código funciona y el otro no.
Saludos.



