0

新しいスレッドを作成し、メインファイルでSrcGrabber.grabSource()の開始を開始するにはどうすればよいですか?そして、どのタイプのスレッドを使用する必要がありますか?別のスレッドがないと、このコードは機能しません。
メインファイルでは、SrcGrabber.grabSource()を実行し、返されたmBuffer.toString()を続行する必要があります。

public class SrcGrabber {
private HttpGet mRequest;
private HttpClient mClient;
private BufferedReader mReader;

private DocumentBuilder mBuilder;

private StringBuffer mBuffer;
private String mNewLine;

public SrcGrabber() {
    mRequest = new HttpGet();
    mClient = new DefaultHttpClient();
    mReader = null;

    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        factory.setIgnoringComments(true);
        mBuilder = factory.newDocumentBuilder();
    } catch (ParserConfigurationException e) {
        e.printStackTrace();
    }

    mBuffer = new StringBuffer(2000);
    mNewLine = System.getProperty("line.separator");
}

public String grabSource(String url) throws ClientProtocolException,
        IOException, URISyntaxException {
    mBuffer.setLength(0);

    try {
        mRequest.setURI(new URI("http://www.bash.im"));
        HttpResponse response = mClient.execute(mRequest);
        mReader = new BufferedReader(new InputStreamReader(response
                .getEntity().getContent()));

        String line = "";
        while ((line = mReader.readLine()) != null) {
            mBuffer.append(line);
            mBuffer.append(mNewLine);
        }
    } finally {
        closeReader();
    }

    return mBuffer.toString();
}

private void closeReader() {
    if (mReader == null)
        return;

    try {
        mReader.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

4

1 に答える 1

1

このブログ記事を読むのが最善です:Androidの痛みのないスレッド

Androidで可能なさまざまな方法について説明します。

于 2012-09-18T19:30:12.043 に答える