我有一个启动AsyncTask的活动。这个AsyncTask在onPostExecute中使用AutoCompleteTextView.showDropDown()。问题是,当AsyncTask正在运行时,我按“返回”,应用程序在showDropDown()行抛出异常,因为AsyncTask仍在使用AutoCompleteTextView。如何解决这个问题? (最好的方法)当AsyncTask使用小部件时,活动关闭
更新:我仍然不满意sonykuba的解决方案。使用非最终静态变量时,这不是一个好习惯。我想从活动中解耦AsyncTask,但不能想出任何更好的解决方案。
更新:添加例外
09-05 13:41:05.536: ERROR/AndroidRuntime(962): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.view.ViewRoot.setView(ViewRoot.java:505)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.view.Window$LocalWindowManager.addView(Window.java:424)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.widget.PopupWindow.invokePopup(PopupWindow.java:828)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.widget.PopupWindow.showAsDropDown(PopupWindow.java:740)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at android.widget.AutoCompleteTextView.showDropDown(AutoCompleteTextView.java:1207)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at com.megadict.business.recommending.RecommendTaskInitializer$2.onPostExecute(RecommendTaskInitializer.java:58)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at com.megadict.business.recommending.AbstractRecommendTask.onPostExecute(AbstractRecommendTask.java:29)
09-05 13:41:05.536: ERROR/AndroidRuntime(962): at com.megadict.business.recommending.RecommendTask.onPostExecute(RecommendTask.java:37)