我正在使用 xampp 从服务器读取数据,但数据为空 这是我的连接 Activity :
public String link="";
public AsyncTaskConnect(String link){
this.link=link;
}
@Override
protected Object doInBackground(Object[] params) {
try{
URL url=new URL(link);
URLConnection connection=url.openConnection();
BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder builder=new StringBuilder();
String line=null;
while((line=reader.readLine())!=null){
builder.append(line);
}
MainActivity.data=builder.toString();
}catch (Exception e){
}
return "";
}
这是主要 Activity :
public static String data="";
TextView txthello;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txthello=(TextView)findViewById(R.id.txthello);
new AsyncTaskConnect("http://192.168.1.2/digikala/test.php").execute();
txthello.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity.this,data,Toast.LENGTH_LONG).show();
}
});
}
但是不起作用,我该怎么办?
最佳答案
but the data is empty
因为execute不是阻塞调用。
假设您实际上可以到达服务器,MainActivity.data
是一个空字符串,直到 Asynctask onPostExecute 之后
您可以使用 Volley、Okhttp、Retrofit 等来简化您的网络代码
Comparison of Android networking libraries: OkHTTP, Retrofit, and Volley
或将回调添加到您的异步任务中
How to get the result of OnPostExecute() to main activity because AsyncTask is a separate class?
关于java - 我的 Android 应用程序无法连接到服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45905805/