0

サーバーにデータを更新する方法は?以下のコードを使用しましたが、10分後に実行されません。

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

            public void run() {

//update data to server

            }

    }, 0, 600, TimeUnit.SECONDS);
4

2 に答える 2

2

独自のスレッドを使用する必要があります。これが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
                }            
}
于 2013-01-30T15:37:57.553 に答える
0

これで試してください

 private static final ScheduledExecutorService worker = Executors
       .newSingleThreadScheduledExecutor();
 worker.schedule(new Runnable(){
        public void run() {
 //update data to server
        }, 600, TimeUnit.SECONDS);
于 2013-01-30T15:09:48.020 に答える