java - android - Теextview 不会立即改变

标签 java android textview

我从服务器接受数组,然后填充数据textview。

private class ReadMessages extends       AsyncTask<Void, Void, Integer>
{
    HttpURLConnection conn;
    String ansver, bfr_st;
    JSONArray JsonArray;
    protected Integer doInBackground(Void... params) {
        try {
        String post_url = server_name +"/chat.php?action=select";
        conn = (HttpURLConnection) new URL(post_url).openConnection();
        conn.setReadTimeout(10000); 
        conn.setConnectTimeout(15000);
        conn.setRequestMethod("GET");
        conn.setRequestProperty("User-Agent", "Mozilla/5.0");
        conn.setDoInput(true);
        conn.connect();

        InputStream is = conn.getInputStream(); //канал
        BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8")); //буфер
        StringBuilder sb = new StringBuilder(); //сборщик строки
        while ((bfr_st = br.readLine()) != null) {
            sb.append(bfr_st); //получили массив в виде string
        }

        String json_bum = sb.toString(); 
        JsonArray = new JSONArray(json_bum); //преобразовали string обратно в массив

        for (int i=0; i<JsonArray.length(); i++) { 
             jsonObject = JsonArray.getJSONObject(i); //вынули все обьекты
        }
        tv_number.setText("Номер     - " + jsonObject.getInt("_id") + 
                    "\n"
                      + "Автор -      " + jsonObject.getString("author") +
                      "\n" 
                      + "Адресат     - " + jsonObject.getString("client") +
                      "\n"
                      + "Время -      " + jsonObject.getLong("data") +
                      "\n"
                      + "Текст - "      + jsonObject.getString("text") +
                      "\n");

            is.close();
            br.close();

            } catch (Exception e) { 

            } finally { 

                conn.disconnect();
            }
            return null;
        }


        }

当我折叠应用程序然后返回时,文本会发生变化。但是当你按下一个没有发生的按钮时立即

最佳答案

您只能从应用程序主线程更新您的 GUI 元素/小部件。 AsyncTask 正在创建单独的线程,您不能通过方法 doInBackground 执行此操作,请尝试使用 publishProgressonProgressUpdate 或在 中执行所有这些工作人员>onPostExecute

关于java - android - Теextview 不会立即改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36576474/

相关文章:

android - android广播接收器会消耗电池生命周期吗?

android - Kotlin 设置文本

java - 使用 POI 下载的文件已损坏,并且未存储弹出窗口中的数据

java - 启动tomcat时出现空指针异常

java - 通过通知栏恢复应用程序

javascript - 如何通过单击文本打开网页

android - 换行符和制表符未正确显示

在新线程中执行任务时 JavaFX UI 卡住

java - 同时从数据库中选择多个数据

android - Android 上 OpenGL 表面 View 上不需要的透明 SupportMapFragment