Android 重新打开活动时AsyncTask(doInBackground方法)出现问题

Android 重新打开活动时AsyncTask(doInBackground方法)出现问题,android,android-asynctask,Android,Android Asynctask,最近我开始使用AsyncTask,我发现在使用它时出现了一些问题 我有这个ListActivity(CatalogActivity),我使用AsyncTask重新加载它,因为它是某种树逻辑。每次我在列表中选择一个项目时,我都会在doInBackground方法中进行一些计算并显示进度对话框,而在onPostExecute中,我会重新加载列表并取消进度。一切正常 完成后(我达到最后一级),我开始另一项活动(LoginActivity)。此新活动具有“后退”菜单按钮,可启动我前面提到的列表活动。它启

最近我开始使用AsyncTask,我发现在使用它时出现了一些问题

我有这个
ListActivity
(CatalogActivity),我使用
AsyncTask
重新加载它,因为它是某种树逻辑。每次我在列表中选择一个项目时,我都会在
doInBackground
方法中进行一些计算并显示进度对话框,而在
onPostExecute
中,我会重新加载列表并取消进度。一切正常

完成后(我达到最后一级),我开始另一项活动(LoginActivity)。此新活动具有“后退”菜单按钮,可启动我前面提到的列表活动。它启动活动,当我在
doInBackground
方法中点击加载部分时,我得到了这个奇怪的异常。真正有趣的部分是,如果我在我的加载方法上设置断点,然后逐步跳过所有的工作就可以了

我到底错过了什么

下面是my CatalogActivity的
doInBackground
方法(发生错误的地方):

以下是LogCat记录:

06-20 11:38:21.109: ERROR/AndroidRuntime(22789): FATAL EXCEPTION: AsyncTask #4
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): java.lang.RuntimeException: An error occured while executing doInBackground()
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.lang.Thread.run(Thread.java:1096)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): Caused by: java.lang.NullPointerException
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.access$1(CatalogActivity.java:35)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:197)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:1)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     ... 4 more
06-20 11:38:44.086: ERROR/WindowManager(22789): Activity si.realis.rmap.android.CatalogActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0 that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789): android.view.WindowLeaked: Activity si.realis.rmap.android.CatalogActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0 that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.ViewRoot.<init>(ViewRoot.java:247)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.Dialog.show(Dialog.java:241)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ProgressDialog.show(ProgressDialog.java:107)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ProgressDialog.show(ProgressDialog.java:90)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity.loadRMLCatalog(CatalogActivity.java:135)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.Initialize(CatalogActivity.java:60)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.<init>(CatalogActivity.java:45)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity.onCreate(CatalogActivity.java:119)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.os.Looper.loop(Looper.java:123)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.main(ActivityThread.java:4627)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at java.lang.reflect.Method.invokeNative(Native Method)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at java.lang.reflect.Method.invoke(Method.java:521)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at dalvik.system.NativeStart.main(Native Method)
06-20 11:49:00.402: ERROR/WifiManager(22835): showApDialog
06-20 11:49:04.699: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:07.511: ERROR/WifiManager(22835): showApDialog
06-20 11:49:14.648: ERROR/WifiManager(22835): showApDialog
06-20 11:49:23.109: ERROR/libnetutils(2475): dhcp start cmd 11 : [dhcpcd:-ABK] 
06-20 11:49:23.597: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:23.965: ERROR/gps_BRCM(2475): BrcmLbs_sync() return error.
06-20 11:38:21.109:错误/AndroidRuntime(22789):致命异常:异步任务4
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):java.lang.RuntimeException:执行doInBackground()时出错
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在android.os.AsyncTask$3.done(AsyncTask.java:200)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.lang.Thread.run(Thread.java:1096)处
06-20 11:38:21.109:错误/AndroidRuntime(22789):由以下原因引起:java.lang.NullPointerException
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在si.realis.rmap.android.CatalogActivity$CatalogAdapter.access$1(CatalogActivity.java:35)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):位于si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:197)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):位于si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:1)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在android.os.AsyncTask$2.call(AsyncTask.java:185)
06-20 11:38:21.109:ERROR/AndroidRuntime(22789):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-20 11:38:21.109:错误/AndroidRuntime(22789):。。。4更多
06-20 11:38:44.086:错误/WindowManager(22789):活动si.reasi.rmap.android.CatalogActivity已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0原来是加在这里的
06-20 11:38:44.086:错误/WindowManager(22789):android.view.WindowLeaked:Activity si.reasi.rmap.android.CatalogActivity已泄漏了window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0原来是加在这里的
06-20 11:38:44.086:错误/WindowManager(22789):在android.view.ViewRoot.(ViewRoot.java:247)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.view.Window$LocalWindowManager.addView(Window.java:424)
06-20 11:38:44.086:错误/WindowManager(22789):在android.app.Dialog.show(Dialog.java:241)上
06-20 11:38:44.086:错误/WindowManager(22789):在android.app.ProgressDialog.show(ProgressDialog.java:107)上
06-20 11:38:44.086:错误/WindowManager(22789):在android.app.ProgressDialog.show(ProgressDialog.java:90)上
06-20 11:38:44.086:错误/WindowManager(22789):位于si.realis.rmap.android.CatalogActivity.loadRMLCatalog(CatalogActivity.java:135)
06-20 11:38:44.086:错误/WindowManager(22789):位于si.realis.rmap.android.CatalogActivity$CatalogAdapter.Initialize(CatalogActivity.java:60)
06-20 11:38:44.086:错误/WindowManager(22789):位于si.realis.rmap.android.CatalogActivity$CatalogAdapter。(CatalogActivity.java:45)
06-20 11:38:44.086:错误/WindowManager(22789):位于si.realis.rmap.android.CatalogActivity.onCreate(CatalogActivity.java:119)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-20 11:38:44.086:ERROR/WindowManager(22789):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-20 11:38:44.086:错误/WindowManager(22789):在android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.os.Handler.dispatchMessage(Handler.java:99)上
06-20 11:38:44.086:错误/WindowManager(22789):在android.os.Looper.loop(Looper.java:123)上
06-20 11:38:44.086:ERROR/WindowManager(22789):在android.app.ActivityThread.main(ActivityThread.java:4627)上
06-20 11:38:44.086:错误/WindowManager(22789):位于java.lang.reflect.Method.Invokenactive(本机方法)
06-20 11:38:44.086:ERROR/WindowManager(22789):在java.lang.reflect.Method.invoke(Method.java)处
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): FATAL EXCEPTION: AsyncTask #4
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): java.lang.RuntimeException: An error occured while executing doInBackground()
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at android.os.AsyncTask$3.done(AsyncTask.java:200)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask.run(FutureTask.java:137)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.lang.Thread.run(Thread.java:1096)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789): Caused by: java.lang.NullPointerException
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.access$1(CatalogActivity.java:35)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:197)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at si.realis.rmap.android.CatalogActivity$LoadRMLCatalog.doInBackground(CatalogActivity.java:1)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at android.os.AsyncTask$2.call(AsyncTask.java:185)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
06-20 11:38:21.109: ERROR/AndroidRuntime(22789):     ... 4 more
06-20 11:38:44.086: ERROR/WindowManager(22789): Activity si.realis.rmap.android.CatalogActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0 that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789): android.view.WindowLeaked: Activity si.realis.rmap.android.CatalogActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@47f532a0 that was originally added here
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.ViewRoot.<init>(ViewRoot.java:247)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.view.Window$LocalWindowManager.addView(Window.java:424)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.Dialog.show(Dialog.java:241)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ProgressDialog.show(ProgressDialog.java:107)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ProgressDialog.show(ProgressDialog.java:90)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity.loadRMLCatalog(CatalogActivity.java:135)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.Initialize(CatalogActivity.java:60)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity$CatalogAdapter.<init>(CatalogActivity.java:45)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at si.realis.rmap.android.CatalogActivity.onCreate(CatalogActivity.java:119)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.os.Looper.loop(Looper.java:123)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at android.app.ActivityThread.main(ActivityThread.java:4627)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at java.lang.reflect.Method.invokeNative(Native Method)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at java.lang.reflect.Method.invoke(Method.java:521)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
06-20 11:38:44.086: ERROR/WindowManager(22789):     at dalvik.system.NativeStart.main(Native Method)
06-20 11:49:00.402: ERROR/WifiManager(22835): showApDialog
06-20 11:49:04.699: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:07.511: ERROR/WifiManager(22835): showApDialog
06-20 11:49:14.648: ERROR/WifiManager(22835): showApDialog
06-20 11:49:23.109: ERROR/libnetutils(2475): dhcp start cmd 11 : [dhcpcd:-ABK] 
06-20 11:49:23.597: ERROR/HierarchicalStateMachine(2475): TetherMaster - unhandledMessage: msg.what=3
06-20 11:49:23.965: ERROR/gps_BRCM(2475): BrcmLbs_sync() return error.