Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中创建线程_Android_Eclipse_Multithreading - Fatal编程技术网

在Android中创建线程

在Android中创建线程,android,eclipse,multithreading,Android,Eclipse,Multithreading,如何创建新线程并在主文件中启动SrcGrabber.grabSource()的启动?我应该使用哪种类型的线?如果没有其他线程,此代码将无法工作。 在主文件中,我只需要执行SrcGrabber.grabSource()并继续执行返回的mBuffer.toString() }最好阅读这篇博客文章: 它解释了Android中可能的不同方式。我不知道你的“主文件”是什么,但假设它是活动< /代码>,然后考虑转换你的代码> SRCGracBue类,以扩展 AycCastase。除此之外,你可以在这里阅读有

如何创建新线程并在主文件中启动SrcGrabber.grabSource()的启动?我应该使用哪种类型的线?如果没有其他线程,此代码将无法工作。
在主文件中,我只需要执行SrcGrabber.grabSource()并继续执行返回的mBuffer.toString()


}最好阅读这篇博客文章:


它解释了Android中可能的不同方式。

我不知道你的“主文件”是什么,但假设它是<代码>活动< /代码>,然后考虑转换你的代码> SRCGracBue<代码>类,以扩展<代码> AycCastase。除此之外,你可以在这里阅读有关线程的内容…+1用于该链接-我试图找到该链接,但在我的浏览器书签中没有该链接。我不得不自己用谷歌搜索它,但标题很吸引人,所以我记得它:-)但我不明白如果该函数位于另一个线程中,如何获取该函数返回的数据。onPreExecute(),onPostExecute()和onProgressUpdate()都在UI线程上调用
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();
    }
}