我创建了一个安卓应用程序。我尝试从PHP文件中获取内容。我在下面的方法中编写了逻辑getCont()
但它不起作用。它在安卓中总是返回空值。当我对Java做同样的事情时,它会返回PHP内容。如何解决这个问题,所以没有抛出异常。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String dbcont = getCont();
tone = (TextView)findViewById(R.id.textView1);
tone.setText("usean :-)"+dbcont);
}
public String getCont() {
String mit = null;
try {
URL oracle = new URL("http://localhost/grace/conn.php");
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
StringBuilder sb = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null) {
sb.append(inputLine);
}
mit = sb.toString();
System.out.println(mit);
}
catch(Exception e){
e.printStackTrace();
}
return mit;
}
你是说你没有例外?你正在 UI 线程上打开 URL 连接。 这在安卓上受到限制。我很惊讶应用程序没有崩溃。
http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
您必须使用单独的线程来执行网络功能。阅读此内容
http://developer.android.com/reference/android/os/AsyncTask.html
您需要创建一个扩展ASyncTask
的类,然后在 doInBackground()
方法中,您可以打开连接以获取 PHP 文件。
然后,您可以返回将传递给 onPostExecute()
方法的结果。这将允许您将数据从连接(即 PHP 文件)传递回您的 UI 线程。
让我知道这是否有帮助。