数据显示在控制台上,但不影响android listview中的

数据显示在控制台上,但不影响android listview中的,android,json,sockets,listview,Android,Json,Sockets,Listview,我正在开发一个基于套接字的应用程序。我正在读取数据并将其转换为JSON,然后在列表视图中显示 套接字数据读取如下所示: public String clientReceive(int check) { try { if (s != null) { while (s.isConnected()) { in = new BufferedReader(new InputStreamReader(

我正在开发一个基于套接字的应用程序。我正在读取数据并将其转换为JSON,然后在列表视图中显示

套接字数据读取如下所示:

   public String clientReceive(int check) {
    try {

        if (s != null) {
            while (s.isConnected()) {
                in = new BufferedReader(new InputStreamReader(
                        s.getInputStream()));
                int nRead;
                char[] data = new char[8192];

                String decoded = "";
                String symbs = "";
                while ((nRead = in.read(data, 0, data.length)) != -1) {
                    decoded = new String(data, 0, nRead);
                    decoded = new String(decoded.getBytes(),"UTF-8");
                        return decoded;

            }   
        }   

    } catch (SocketException e) {

    }catch (Exception e) {
        // TODO: handle exception
    }
    // return null;
    return null;
}
Asyn Task DoinBackground方法和postExecute方法是:

           @Override
    protected ArrayList<User> doInBackground(Void... params) {
        //isCycleQuit=false;

        for(int i=0;i<1000;i++){
            if (isCancelled()) {
                System.out.println("**** All timers killed ***");
                break;
            }
        }
        JSONmessage += client.clientReceive(1);
        message=JSONmessage;
        JSONmessage="";
        //System.out.println("MESSAGE Socket::" + message);

        return null;
    }

           protected void onPostExecute(ArrayList<User> result) {
        if (!message.contains("null")) {
            printJson();
            // updateList();
            displayView();
        }
            }
我需要每秒读取数据并显示。大多数时候我都能看到listview。但有时数据会显示在控制台上。但不更新用户界面,继续领先

我哪里出错了。请帮忙


谢谢。

有什么例外吗?你在哪里将数据打印到控制台?我不喜欢例外,我正在控制台上打印来自doInBackground()方法的数据。我上一篇文章是如何每秒读取数据的。请参阅。感谢您在displayView()函数中再次检查数据
public void displayView() {
    try {
        if (!marketWatch.equalsIgnoreCase("custom")) {
            if (!swapBool)
                adb = new RSSListAdaptor(DefaultMarketWatch.this,
                        R.layout.rssitemview, list);
            else {
                adb = new RSSListAdaptor(DefaultMarketWatch.this,
                        R.layout.arabiclist, list);
            }
        } else {
            if (!swapBool)
                adb = new RSSListAdaptor(DefaultMarketWatch.this,
                        R.layout.customlayout, list);
            else {
                adb = new RSSListAdaptor(DefaultMarketWatch.this,
                        R.layout.ar_customlayout, list);
            }
        }
    } catch (IllegalStateException e) {
        e.printStackTrace();
    }
}