相关疑难解决方法(0)

在Android中制作异步HTTP请求是否有可接受的最佳做法?

我已经看过很多例子,他们似乎都以不同的方式解决了这个问题.基本上我只想要最简单的方法来做出不会锁定主线程并且可以取消的请求.

我们(至少)有两个HTTP库可供选择,java.net.*(例如HttpURLConnection)和org.apache.http.*也没有帮助.

关于最佳实践是什么,是否有任何共识?

java android http

42
推荐指数
2
解决办法
2万
查看次数

如何在自己的线程中执行Web请求?

我正在创建一个Android应用程序,它必须在后台执行Web请求,然后处理接收的数据并根据服务器响应修改用户界面.

在后台发布请求和处理数据的目的是避免冻结用户界面.但是目前我注意到用户界面已经冻结,所以我不确定逻辑是否正常工作.

这是代码的一部分,它应该在自己的线程中发布请求和处理响应,然后将数据传递给GUI:

public class ServerConnection {

Queue<String> requests;

...

DefaultHttpClient httpClient;
HttpHost targetHost;

Handler handler;

ServerResponseHandler responseHandler;
Activity activity;

public ServerConnection(Activity activity){
    this.activity = activity;
    this.responseHandler = (ServerResponseHandler) activity;
    httpClient = new DefaultHttpClient();
    targetHost = new HttpHost(TARGET_DOMAIN, 80, "http");
    requests = new LinkedList<String>();
}



private Runnable requestSender = new Runnable(){

    @Override
    public void run() {
        if(!requests.isEmpty()){
            String requestString = requests.remove();
            HttpGet httpGet = new HttpGet(requestString);
            httpGet.addHeader("Accept", "text/xml");
            String encodingString = "testuser:testpass";
            String sEncodedString = Base64Coder.encodeString(encodingString);

            try{

                String sContent = …
Run Code Online (Sandbox Code Playgroud)

java multithreading android

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

android ×2

java ×2

http ×1

multithreading ×1