我正在尝试从服务器上存在的.txt文件中读取文本时遇到NetworkOnMainThreadException如何解决此问题 提前致谢。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv= new TextView(this);
TextView tv2 = new TextView(this);
StringBuilder content = new StringBuilder();
try {
URL url = new URL("http://linktomywebsite/textfile.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String str;
while ((str = in.readLine()) != null) {
content.append(str +"\n");
tv.setText(content);
}
in.close();
} catch (MalformedURLException e){
} catch (IOException e) {
e.printStackTrace();
}
catch (NetworkOnMainThreadException e){
tv2.setText("not connecting to server");
setContentView(tv2);
}
};
}
答案 0 :(得分:2)
答案 1 :(得分:0)
创建一个新线程并执行大量操作,例如从中获取数据...... 蚂蚁使用处理程序或异步任务来更新UI上的结果
就像这样 http://www.vogella.com/articles/AndroidPerformance/article.html
答案 2 :(得分:0)
一种解决方案是允许网络操作(尽管不建议这样做)。将以下内容添加到onCreate()。
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);