我有活动A和B.他们都有AsyncTasks连接到网络并获取一些JSON。我得到一个我不能完全复制的错误,但我不确定我做错了什么。当我从活动B按下后退按钮到A到主屏幕时,我收到错误。
stacktrace:
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:299)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
at java.util.concurrent.FutureTask.run(FutureTask.java:239)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Caused by: java.lang.NullPointerException
at com.mycompany.myapp.ActivityGD$GetMethod.doInBackground(ActivityGD.java:131)
at com.mycompany.myapp.ActivityGD$GetMethod.doInBackground(ActivityGD.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:287)
at java.util.concurrent.FutureTask.run(FutureTask.java:234)
... 4 more
我不知道如何获得一个空指针,看起来像是AsyncTask。注意:ActivityGD = Activity B.因此,当我只是按下活动A时,我不明白我是如何在活动B上获得空指针。
第130至137行
protected void onPostExecute(String response) {
String[] myText = final.split(",");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
ActivityGD.this, R.layout.simple_list_item_1,
myText);
setListAdapter(adapter);
}
答案 0 :(得分:2)
您的变量final,在第131行,返回null并触发NPE。可能是因为当asynctask仍在运行时退出活动B.为它添加一个空检查,这应该照顾NPE。