gpt4 book ai didi

java - 在 HttpClient 上应用 Asynctask

转载 作者:行者123 更新时间:2023-12-01 12:09:18 25 4
gpt4 key购买 nike

我之前没有使用过 AsyncTask,也不了解有关它的一些教程,所以我真的不知道如何将它应用于 HttpClient 执行。请帮助我实现这种实现,这是最初的代码:

public void commandModule(String url) {
try {
HttpClient httpClient = new DefaultHttpClient();
httpClient.execute(new HttpGet(url));

} catch (Exception e) {

}

}


@Override
public void onClick(View v) {
if (checkBox1.isChecked()) {
commandModule("http://192.168.1.102/?command1");
} else {
commandModule("http://192.168.1.102/?command2");
}

if (checkBox2.isChecked()) {
commandModule("http://192.168.1.102/?command3");
} else {
commandModule("http://192.168.1.102/?command4");
}

}

最佳答案

如果您了解java中的Thread,那么您将很容易理解android中Async Task的工作原理。基本上,你不能在android的主线程上执行任何长时间运行的任务。它会阻塞主线程,并且您将收到 ANR(应用程序未响应)错误。为了避免这种情况,您可以使用线程或异步任务。线程有一个限制,您不能从任何其他线程更新 UI 线程。因此,要更新 UI,您需要使用处理程序将消息发送到主/UI 线程。每次使用线程实现某些内容时,您都必须执行此操作。为了简化,android框架提供了Async Task。

因此,无论您应该在 Thread 的 run() 方法中放入什么,都应该放入 doInBackground() 方法中。

关于java - 在 HttpClient 上应用 Asynctask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com