Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

atualização/atualização de dados do android listview sem fechar o aplicativo


Você deve agendar seu DownloadJSON tarefa seja executada periodicamente da seguinte forma:
public void callAsynchronousTask() {
    final Handler handler = new Handler();
    Timer timer = new Timer();
    TimerTask doAsynchronousTask = new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                public void run() {
                    try {
                        DownloadJSON performBackgroundTask = new DownloadJSON();
                        performBackgroundTask.execute();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
        }
    };
    timer.schedule(doAsynchronousTask, 0, 10000); //execute in every 10 sec
}

Isso deve funcionar, mas não é a maneira mais eficiente, pois você está solicitando todos os dados repetidamente. (Há muitos dados sendo baixados que não são necessários).

Em vez disso, você deve executar uma tarefa periodicamente que verifique o servidor se houver novas atualizações existir. Se o servidor disser sim.. então ele busca a lista completa.. caso contrário, ele espera por algum tempo e solicita uma nova atualização novamente. Mas para isso você precisa modificar a API do servidor (para que você possa considerar isso no futuro)