如何创建一个线程以3秒间隔刷新数据

时间:2012-09-21 06:44:36

标签: android

我需要一个线程(它执行httppost,并解析答案xml并刷新listview以设置来自解析的xml的更改),并在3秒的时间间隔内

我已经尝试过这段代码

定时器计时器=新的计时器();         timer.scheduleAtFixedRate(

    new TimerTask() {

        public void run() {

            try {

                httpPostList(url);
                saxParseList();
                                    list.invalidateViews();

                Thread.sleep(1000);

            } catch (Exception ie) {

            }

        }

    }, 1000, 1000 * 30);

3 个答案:

答案 0 :(得分:1)

我很感激您创建一个带有AsyncTask的服务。 异步任务是普通Java任务的Android同义词,文档在此处查找:http://developer.android.com/reference/android/os/AsyncTask.html

服务是后台流程,看到这个Doc: http://developer.android.com/reference/android/app/Service.html

答案 1 :(得分:0)

尝试使用处理程序:

 Handler handler;

 @Override
 public void onCreate(Bundle savedInstanceState) {
     // ...
     handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            updateUI();
        }
    };

    Thread thread = new Thread() {
        @Override
        public void run() {
            while(true) {
                Message msg = new Message();
                handler.sendMessage(msg);
                try {
                    sleep(3*1000); // 3 seconds
                } catch (InterruptedException e) {
                }
            }                       
        }
    };
    thread.start();
 }

 private synchronized void updateUI() {
     // ...
 }

答案 2 :(得分:0)

最后我使用“异步任务”创建了它。