обновить данные на сервер в фоновом режиме android

Как обновить данные на сервер? Я использовал код ниже, но он не выполняется через 10 минут.

ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
        executor.scheduleWithFixedDelay(new Runnable(){

            public void run() {

//update data to server

            }

    }, 0, 600, TimeUnit.SECONDS);

person James Patrick    schedule 30.01.2013    source источник


Ответы (2)


Вы должны использовать свой собственный Thread. Вот решение с использованием AsyncTask....

Весь код помещен в ваш класс Activity.

public void toCallAsynchronous() {
                    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 {

        MyAsyncTask task = new MyAsyncTask();
        task.execute(txtSearchField.getText().toString());


                                }
                            });
                        }
                    };
    timer.schedule(doAsynchronousTask, 0, 2000); // execute in every 2 second

}

// Класс асинхронной задачи

private class MyAsyncTask extends AsyncTask<String, Object, List<ModelObject>> {

               @Override
               protected List< ModelObject > doInBackground(String... params) {

               // Call web service
               return null;

                }

                @Override
                protected void onPostExecute(List< ModelObject > result) {
                        super.onPostExecute(rezultat);
                        // Update UI
                }            
}
person Haris Dautović    schedule 30.01.2013

Попробуйте с этим

 private static final ScheduledExecutorService worker = Executors
       .newSingleThreadScheduledExecutor();
 worker.schedule(new Runnable(){
        public void run() {
 //update data to server
        }, 600, TimeUnit.SECONDS);
person Jambaaz    schedule 30.01.2013
comment
Куда вставить метод, который нужно запустить? - person James Patrick; 30.01.2013