gpt4 book ai didi

java - oncreate 方法内部无法读取 php 文件的内容?

转载 作者:行者123 更新时间:2023-11-29 20:11:29 25 4
gpt4 key购买 nike

我创建了一个安卓应用。我尝试从 PHP 文件中获取内容。我在下面的 getCont() 方法中写了逻辑,但它不起作用。它在 Android 中总是返回 null。当我对 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 线程。

如果这有帮助,请告诉我。

关于java - oncreate 方法内部无法读取 php 文件的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com