我只是在创建一个简单的android应用程序,它记录特定网站的html代码。在oncreate方法中,传递一个字符串,它是我们想要的html代码的url。每当我运行应用程序时,我不会在日志中得到html代码,而且模拟器也会冻结。它只适用于特定的链接https://www.zappycode.com/" . 如果任何其他链接通过,我会得到的问题。代码:
package com.example.guesswho;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
public class DownloadTask extends AsyncTask<String,Void, String>{
@Override
protected String doInBackground(String... urls) {
String result=null;
URL url;
HttpURLConnection urlConnection= null;
try{
url= new URL(urls[0]);
urlConnection= (HttpURLConnection) url.openConnection();
InputStream in= urlConnection.getInputStream();
InputStreamReader reader= new InputStreamReader(in);
int data= reader.read();
while(data != -1){
char current= (char) data;
result+= current;
data= reader.read();
}
return result;
}catch(Exception e){
e.printStackTrace();
return "failed";
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task= new DownloadTask();
String result= null;
try{
result= task.execute("https://www.imdb.com/list/ls052283250/").get(); //DOES NOT WORK
//result= task.execute("https://en.wikipedia.org/wiki/ICC_Player_Rankings").get();//DOES NOT WORK
//result= task.execute("https://www.zappycode.com/").get(); //THIS WORKS PERFECTLY
}catch(Exception e){
e.printStackTrace();
}
Log.i("Result", result);
}
}
传递imbd或wikipedia链接时记录。
传递imbd或wikipedia时的仿真器:(home、switch app和back按钮不起作用,helloworld textview不可见)
为什么会发生这种情况,我如何解决它。提前感谢:)
1条答案
按热度按时间pes8fvy91#
在androidmanifest.xml文件的application标记下添加这一行。