java - message.obj 的含义 [android 网络]

标签 java android

我试图理解这段代码: 我不明白的是

来自的obj 消息.obj = 结果;

通过谷歌API, 它是发送给接收者的任意对象。 为什么我们在这个 java[android] 世界中使用任意对象???

class DownThread extends Thread {
    String mAddr;

    DownThread(String addr) {
        mAddr = addr;
    }

    public void run() {
        String result = DownloadHtml(mAddr);
        Message message = mAfterDown.obtainMessage();
        message.obj = result;
        mAfterDown.sendMessage(message);

    }

    String DownloadHtml(String addr) {
        StringBuilder html = new StringBuilder();
        try {
            URL url = new URL(addr);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            if (conn != null) {
                conn.setConnectTimeout(10000);
                conn.setUseCaches(false);
                if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(conn.getInputStream())
                    );
                    for(;;) {
                        String line = br.readLine();
                        if (line == null) break;
                        html.append(line + "/n");
                    }
                    br.close();
                }
                conn.disconnect();

            }
        } catch (NetworkOnMainThreadException e){
            return e.getMessage();

        } catch (Exception e){
            return e.getMessage();
        }
        return html.toString();
    }

}


Handler mAfterDown = new Handler() {

    public void handleMessage(Message msg) {
        mProgress.dismiss();
        TextView result = (TextView) findViewById(R.id.result);
        result.setText((String) msg.obj);

    }

};

最佳答案

document说:

An arbitrary object to send to the recipient.

因为Android并不确切知道Message中要发送什么类型的对象。

在您的代码中:message.obj = result; obj 具有 String 类型。但在其他上下文中,可能会分配其他类型的对象。

关于java - message.obj 的含义 [android 网络],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121373/

相关文章:

java - Android:使用自定义可绘制对象时,在 Lollipop 之前 (SDK 16) 上扩展类 ImageView 时出错?

java - 针对共享 Web 服务对用户进行身份验证和授权的架构挑战

android - 收集要安装的项目时出错

android - 使用 TabLayout Viewpager 时出现 "Already managing a GoogleApiClient with id 0"异常

android - android 选择器的按下状态不起作用

java - 错误: bad operand types for binary operator '&&'

Java Spring 应用程序存在内存泄漏。系统非堆内存不断增加

java - Apache POI - 处理空字段

android - 允许用户从 Android 应用程序中选择系统警报音

java - 将 json 文件转换为 sd 卡中存在的字符串