我试图理解这段代码: 我不明白的是
来自的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/