前天,把andorid的布局看了一下,大致是可以操作布局了,然后我就打算学习一下android下如何操作http与后台交互数据。
然后,我就百度了一下相关的文章,实际操作了一下get方式的请求
String strUrl = "http://baidu.com";
try {
String tmp = null;
URL url = new URL(strUrl);
HttpURLConnection cn = (HttpURLConnection) url.openConnection();
cn.connect();
InputStreamReader in = new InputStreamReader(cn.getInputStream());
BufferedReader br = new BufferedReader(in);
String line = null;
while((line = br.readLine()) != null) {
tmp += line;
}
in.close();
cn.disconnect();
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "ceshi", Toast.LENGTH_SHORT).show();
}
然后给我报错 android.os.NetworkOnMainThreadException,没怎么看具体的单词,直接百度了一下,哦,原来android3.0以上,为了防止界面卡住ANR(新学的名词哦 Activity and Application Not Responding)默认是不允许在主线程中操作网络等耗时的行为。解决方法有两种,一个是让它可以在主线程中使用,另外一个就是开启一个子线程。
开启一个子线程,但是子线程里是没法直接操作主线程的ui的,涉及到了android下多线程的操作,好吧,对于一个没怎么学过java的人来说,这些东西看着吃力。慢慢来吧。