-->

在后台的Android更新数据到服务器(update data to server in the b

2019-07-19 00:12发布

如何更新数据到服务器? 我用下面的代码,但10分钟后,其不执行。

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

            public void run() {

//update data to server

            }

    }, 0, 600, TimeUnit.SECONDS);

Answer 1:

你必须使用你自己的线程。 下面是使用的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

}

//的AsyncTask类

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
                }            
}


Answer 2:

这种尝试

 private static final ScheduledExecutorService worker = Executors
       .newSingleThreadScheduledExecutor();
 worker.schedule(new Runnable(){
        public void run() {
 //update data to server
        }, 600, TimeUnit.SECONDS);


文章来源: update data to server in the background android