使用Android 5.0.2的三星标签A上的HTTP请求速度极慢

时间:2015-11-25 08:21:46

标签: android android-5.0-lollipop httpurlconnection

我有一个应用,可以在不同的线程中使用HttpURLConnection进行大量下载。第一个活动在onCreate期间发出2个线程请求。一切都在几台设备上正常工作,但现在我的客户(!)买了一台带有Android 5.0.2的三星Tab A SM-T550。 在这款平板电脑上,我的应用程序每个请​​求都需要几分钟,而其他设备只需要一秒钟。客户告诉我,在请求到达服务器之前浪费了时间。 (基于日志文件中的时间戳)

其他应用程序运行良好,因此我的客户因此问题而责怪我。

此设备或Android版本是否存在任何已知问题?

更新: 我今天从我的客户那里得到了平板电脑,将它连接到我的WLAN,它运行良好! 但在他的办公室里,我可以自己看到,连接速度极慢,而其他应用程序运行得很快。 怎么可能? 客户拥有非常快速的DSL连接。 (50或100 MBit - 他不确定) 似乎问题是在本地,但我不知道在哪里寻找解决方案...

这是我的代码:

public boolean requestHTTPData(TransferResult txResult, String url) {
    boolean res = false;
    this.txResult = txResult;
    try {
        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
        con.setRequestMethod("GET");
        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        txResult.setData(in);
        txResult.setResult(TransferResult.RESULT_OK);
        res = true;
    }
    catch (Exception e) {
        txResult.setError(e.getLocalizedMessage());
    }
    return res;
}

以下是TranferResult的代码:

public class TransferResult {
    public static final int RESULT_OK = 1;
    public static final int RESULT_ERROR = -1;
    public static final int RESULT_UNDEF = 0;

    protected String response = null;
    protected int result = RESULT_UNDEF;
    protected StringBuffer errorText = null;
    protected BufferedReader data = null;
    protected Boot[] boote;
    protected int startIndex = 0;
    protected int anzahl = 0;

    public String getResponse() {
        return response;
    }
    public void setResponse(String response) {
        this.response = response;
    }
    public int getResult() {
        return result;
    }
    public void setResult(int result) {
        this.result = result;
    }

    public BufferedReader getData() {
        return data;
    }
    public void setData(BufferedReader data) {
        this.data = data;
    }
    public boolean wasSuccessfull() {
        return (result == RESULT_OK);
    }

    public Boot[] getBoote() {
        return boote;
    }
    public void setBoote(Boot[] boote) {
        this.boote = boote;
    }

    public int getStartIndex() {
        return startIndex;
    }
    public void setStartIndex(int startIndex) {
        this.startIndex = startIndex;
    }
    public int getAnzahl() {
        return anzahl;
    }
    public void setAnzahl(int anzahl) {
        this.anzahl = anzahl;
    }
    public void setError(String newErrorText) {
        if (newErrorText != null && newErrorText.length() > 0) {
            if (errorText == null) {
                errorText = new StringBuffer();
            } else {
                errorText.append("\n"); 
            }
            this.errorText.append(errorText);
        }
        result = RESULT_ERROR;
    }
    public StringBuffer getErrorText() {
        return errorText;
    }
    public void showError(Context context) {
        if (errorText == null) {
            setError("Errortext is NULL");
        }
        AlertDialog alertDialog = new AlertDialog.Builder(context).create();
        alertDialog.setTitle("");
        alertDialog.setMessage(errorText);
        alertDialog.show();
    }

    public TransferResult(Boot[] boote, int startIndex, int anzahl) {
        super ();
        this.setBoote(boote);
        this.setStartIndex(startIndex);
        this.setAnzahl(anzahl);
    }

    public TransferResult() {
        this (null, 0, 0);
    }

}

欢迎任何想法。

0 个答案:

没有答案