无法在未调用Looper.prepare()Android的线程内创建处理程序。在计时器中循环

时间:2013-04-16 08:27:25

标签: java android time

我正在尝试通过在服务中创建一个线程从我的php服务器接收消息,但它不起作用。不能进入while循环和标题显示的错误消息。请帮助。

            //Set the schedule function and rate
            Timer t = new Timer();
            t.scheduleAtFixedRate(new TimerTask() {

                    @Override
                    public void run() {
                        runOnUiThread(new Runnable() {

                            @Override
                            public void run() {


                        // TODO Auto-generated method stub



                            }

                        });
                    }

                    private void runOnUiThread(Runnable runnable) {
                        // TODO Auto-generated method stub
                        String flag = receivermessage();
                        while (flag.equals("N")){
                            notifyUser();
                        }
                        Log.d(TAG, "Download Successful");
                    }



            }, 0, 10000);

1 个答案:

答案 0 :(得分:0)

最好使用asynctask并在asynctask doinbackground()mtd中接收msg。因为webservice调用可能需要更多的时间,你不能在android中阻止主线程超过5秒。