【发布时间】:2023-03-05 07:01:01
【问题描述】:
我的 AysynTask 不工作。请帮帮我
这是日志详情 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 08-08 10:54:36.939 28068-28068/com.example.rajatanurag.guessthecelebrityapp W/System.err: 在 android.app.ActivityThread.-wrap12(ActivityThread.java) 08-08 10:54:36.941 28068-28068/com.example.rajatanurag.guessthecelebrityapp W/System.err: 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 在 android.os.Handler.dispatchMessage(Handler.java:102) 08-08 10:54:36.942 28068-28068/com.example.rajatanurag.guessthecelebrityapp W/System.err: 在 android.os.Looper.loop(Looper.java:154) 在 android.app.ActivityThread.main(ActivityThread.java:6119) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 08-08 10:54:36.945 28068-28094/com.example.rajatanurag.guessthecelebrityapp W/System.err: java.lang.ArrayIndexOutOfBoundsException: length=0;索引=0 08-08 10:54:36.947 28068-28094/com.example.rajatanurag.guessthecelebrityapp W/System.err: at com.example.rajatanurag.guessthecelebrityapp.MainActivity$DownloadTask.doInBackground(MainActivity.java:31) 在 com.example.rajatanurag.guessthecelebrityapp.MainActivity$DownloadTask.doInBackground(MainActivity.java:20) 08-08 10:54:36.948 28068-28094/com.example.rajatanurag.guessthecelebrityapp W/System.err:在 android.os.AsyncTask$2.call(AsyncTask.java:305) 08-08 10:54:36.949 28068-28094/com.example.rajatanurag.guessthecelebrityapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread.run(Thread.java:761) 08-08 10:54:37.291 28068-28096/com.example.rajatanurag.guessthecelebrityapp I/OpenGLRenderer:初始化 EGL,版本 1.4 08-08 10:54:37.291 28068-28096/com.example.rajatanurag.guessthecelebrityapp D/OpenGLRenderer:交换行为 1 08-08 10:54:37.291 28068-28096/com.example.rajatanurag.guessthecelebrityapp W/OpenGLRenderer:无法选择带有 EGL_SWAP_BEHAVIOR_PRESERVED 的配置,重试不... 08-08 10:54:37.292 28068-28096/com.example.rajatanurag.guessthecelebrityapp D/OpenGLRenderer:交换行为 0 08-08 10:54:37.349 28068-28096/com.example.rajatanurag.guessthecelebrityapp D/EGL_emulation: eglCreateContext: 0xa2d85400: maj 2 min 0 rcv 2 08-08 10:54:37.395 28068-28096/com.example.rajatanurag.guessthecelebrityapp D/EGL_emulation: eglMakeCurrent: 0xa2d85400: ver 2 0 (tinfo 0xa0e7eb60) 08-08 10:54:37.442 28068-28096/com.example.rajatanurag.guessthecelebrityapp D/EGL_emulation: eglMakeCurrent: 0xa2d85400: ver 2 0 (tinfo 0xa0e7eb60)
以下是代码: 公共类 MainActivity 扩展 Activity {
public class DownloadTask extends AsyncTask<String,Void,String>
{
@Override
protected String doInBackground(String... urls) {
String result="";
URL url;
HttpsURLConnection urlConnection=null;
try
{
url=new URL(urls[0]);
urlConnection=(HttpsURLConnection)url.openConnection();
InputStream inputStream=urlConnection.getInputStream();
InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
int data=inputStreamReader.read();
while(data!=-1)
{
char current=(char)data;
result+=current;
data=inputStreamReader.read();
}
}catch(Exception e)
{
e.printStackTrace();
}
return null;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask downloadTask = new DownloadTask();
String result = null;
try {
if (Build.VERSION.SDK_INT >= 11)
downloadTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
else
result = downloadTask.execute("http://www.bollywoodhungama.com/celebrities/top-100/").get();
Log.i("contents of url", result);
} catch (Exception e) {
e.printStackTrace();
}
}
【问题讨论】: