meaning of message.obj [android network]
<p>I'm trying to understand this code:
and what i don't understand is</p>

<p>the <code>obj</code> from 
message.obj = result;</p>

<p>by the google api,
it is an arbitrary object to send to the recipient.
why are we using arbitrary object in this java[android] world???</p>

<pre><code>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);

    }

};
</code></pre>