如何正确使用传递给android线程的参数?

时间:2012-09-24 21:38:28

标签: java android multithreading android-asynctask inputstream

我有一个外部的.hash文件,我把它作为一个简单的远程文本文件阅读:

private class getHash extends AsyncTask<String, Void, String>{
    @Override
    protected String doInBackground(String... params) {
        String str = null;
        try {
            // Create a URL for the desired page
            URL url = new URL(params[0]);

            // Read all the text returned by the server
            InputStream is =  url.openStream();//The line it crashes on
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader in = new BufferedReader(isr);
            str = in.readLine();
            in.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return str;
    }
    @Override
    protected void onPostExecute(String result) {
        hash = result;
    }
}

然后我给线程打电话:

getHash hashThread =  new getHash();
hashThread.execute(new String[]{"http://www......................hash"});

在课程中执行注意到的行期间,所有停靠点都被拉出来,我被优雅的Source not found崩溃打了一巴掌。

LogCat会出现此错误:

W/dalvikvm(724): threadid=1: thread exiting with uncaught exception (group=0x40a13300)

1 个答案:

答案 0 :(得分:0)

您是在调试模式还是常规模式下运行它? source not found消息似乎表明您正试图进入没有附加源代码的代码。

你也加了     <uses-permission android:name="android.permission.INTERNET" /> 到你的AndroidManifest.xml