Actualización automática de Android cuando se insertan nuevos datos en la vista de lista

He estado desarrollando aplicaciones para Android. Tengo back end (aplicación web) y front end (aplicación de Android).

En mi aplicación, tiene una categoría que contiene un montón de lista de elementos. Cuando elijo una categoría, llamará a una tarea que se usa para llamar a todos los datos en DB. Una vez que la tarea se complete, llame a todos los datos, se dirigirá a la actividad. Y la actividad mostrará todos los datos en un ListView.

Ahora, por ejemplo, inserto un nuevo dato del back-end (Web). Digamos que inserto una nueva fila que contiene un boxeo en la categoría deportiva. Entonces, en DB tendrá boxeo en el deporte de mesa.

Y en mi aplicación de Android, actualmente estoy en la categoría de deporte. Entonces, cuando el boxeo se inserta en una nueva base de datos, debería tener una actualización automática y mostrarme el boxeo en la lista.

Pero, ¿cómo lo hago cuando la tarea solo se ejecuta una vez cuando hago clic en una categoría en la lista de categorías? Quiero comparar el total de datos en DB y los datos que se muestran en la aplicación de Android. Cuando los datos no son los mismos, volverá a llamar a la tarea.

Este es el código donde quiero que mi aplicación se actualice

ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    if(mWifi.isConnected()) 
    {
        refresh = new Runnable() {
            public void run() {
                // Do something
                handler.postDelayed(refresh, 1000);
            }
        };
        handler.post(refresh);

        /*gridArray = new ArrayList<FlipItem>();
        adapter = new PackageListItemAdapter(this, this, gridArray);        
        adapter.notifyDataSetChanged();*/

    }
    else
    {
        refresh = new Runnable() {
            public void run() {
                // Do something
                handler.postDelayed(refresh, 60000);
            }
        };
        handler.post(refresh);
        /*gridArray = new ArrayList<FlipItem>();
        adapter = new PackageListItemAdapter(this, this, gridArray);        
        adapter.notifyDataSetChanged();*/
    }

El código donde comento allí, hace que mi lista solo muestre alrededor de 9 donde tengo 15 elementos en DB. Por eso comento esa línea

Respuestas a la pregunta(3)

Su respuesta a la pregunta