我有一个android Activity
,它在URL http://developernetwork.net78.net/readUnivs.php上发出HTTP GET请求时崩溃。让URL连接崩溃我的应用程序
该应用程序只需简单地做一个HTTP GET请求到服务器,以纯文本形式由\n
字符分隔将返回教育大学的名单。该列表然后在android.widget.ArrayAdapter
的帮助下被设置为android.widget.Spinner
中的列表数据。
这里91A的服务器上我的PHP代码
<?php
$conn = mysqli_connect($url, $username, $passwd, $database_name);
$result = mysqli_query($conn, "SELECT University FROM Universities");
while($row = mysqli_fetch_array())
print($row["University"]."\n");
print("END");
mysqli_close($conn);
?>
这里是我的android活动:
package com.adi.test;
import android.os.Bundle;
import android.app.Activity;
import android.widget.Spinner;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import java.util.ArrayList;
import java.util.Scanner;
import java.net.URL;
import java.net.HttpURLConnection;
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
layout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
try {
URL url = new URL("http://developernetwork.net78.net/readUnivs.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("User-Agent", "Mozilla/5.0");
Scanner sc = new Scanner(conn.getInputStream());
ArrayList<String> list = new ArrayList<String>();
while(sc.hasNextLine()) {
String line = sc.nextLine();
if(!line.equals("END"))
list.add(line);
}
sc.close();
} catch(IOException exception) {
}
Spinner spinner = new Spinner(this);
spinner.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
layout.addView(spinner);
setContentView(layout);
}
}
的应用程序编译和我LG L90安装罚款。但是一旦它打开,它就会崩溃。这是为什么发生?如果我添加一个简单的循环,从0到10代替读取服务器响应的循环,该应用运行良好。我认为循环有一些问题。有人可以指出问题可能是什么?
检查这里:http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception – 2014-11-25 10:52:34