
异步任务
public class GetFeaturedStoreListAsyncTask extends AsyncTask<VoID,VoID,String>{Context ctx;ProgressDialog pd;ListVIEw ListFeaturedStore;String dataUrl;public static final String TAG = "GetFeaturedStoreAsyncTask";public static ArrayList<StoreDescriptionDAO> featuredDAOList;public GetFeaturedStoreListAsyncTask(String dataUrl,Context ctx,ListVIEw ListFeaturedStore) { this.dataUrl = dataUrl; this.ctx = ctx; this.ListFeaturedStore = ListFeaturedStore;}//Constructor@OverrIDeprotected voID onPreExecute() { pd = new ProgressDialog(ctx); pd.setMessage(ctx.getResources().getString(R.string.please_wait)); pd.show();}//onPreExecute@OverrIDeprotected String doInBackground(VoID... params) { Log.v(TAG,"doInBackground called"); JsONParser JsonParser = new JsONParser(); String serverResponse = JsonParser.getJsonString(dataUrl); return serverResponse;}//doInBackground@OverrIDeprotected voID onPostExecute(String response) { Featuredlistadapter mFeaturedlistadapter = null; mFeaturedlistadapter = getFeaturedlistadapter(response); if(mFeaturedlistadapter != null) { Log.v(TAG,"adapter not null"); ListFeaturedStore.setAdapter(mFeaturedlistadapter); ListFeaturedStore.setLayoutAnimation(AnimationUtility.fastCascadeListVIEwAnimation()); pd.dismiss(); }//if else { Log.v(TAG,"adapter null"); pd.dismiss(); SeattleNightlifeUtility.OpenUtilityDialog(ctx,ctx.getResources().getString(R.string.network_error_msg)); }//else}//onPostExecuteprivate Featuredlistadapter getFeaturedlistadapter(String Jstring) { Featuredlistadapter mFeaturedAdapter = null; featuredDAOList = ParsedFeaturedStoreDescdata.getFeaturedStoreDesc(Jstring); if(featuredDAOList != null && featuredDAOList.size() > 0) { mFeaturedAdapter = new Featuredlistadapter(ctx,featuredDAOList); Log.v(TAG,"arrayList size > 0"); return mFeaturedAdapter; }//if else { return null; }//else}//getFeaturedlistadapter}//GetCityStoreAsyncTask 这是我的logcat:
Activity com.dzo.seattlesnightlife.FeaturedActivity has leaked window com.androID.internal.policy.impl.PhoneWindow$DecorVIEw@4a715c38 that was originally added here02-02 15:23:45.426: E/WindowManager(12627): androID.vIEw.WindowLeaked: Activity com.dzo.seattlesnightlife.FeaturedActivity has leaked window com.androID.internal.policy.impl.PhoneWindow$DecorVIEw@4a715c38 that was originally added here02-02 15:23:45.426: E/WindowManager(12627): at androID.vIEw.VIEwRoot.<init>(VIEwRoot.java:247)02-02 15:23:45.426: E/WindowManager(12627): at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:148)02-02 15:23:45.426: E/WindowManager(12627): at androID.vIEw.WindowManagerImpl.addVIEw(WindowManagerImpl.java:91)02-02 15:23:45.426: E/WindowManager(12627): at androID.vIEw.Window$LocalWindowManager.addVIEw(Window.java:424)02-02 15:23:45.426: E/WindowManager(12627): at androID.app.Dialog.show(Dialog.java:241)02-02 15:23:45.426: E/WindowManager(12627): at com.dzo.seattlesnightlife.asynctask.GetFeaturedStoreListAsyncTask.onPreExecute(GetFeaturedStoreListAsyncTask.java:40)02-02 15:23:45.426: E/WindowManager(12627): at androID.os.AsyncTask.execute(AsyncTask.java:391)02-02 15:23:45.426: E/WindowManager(12627): at com.dzo.seattlesnightlife.FeaturedActivity$MyTimerTask.run(FeaturedActivity.java:173)02-02 15:23:45.426: E/WindowManager(12627): at androID.os.Handler.handleCallback(Handler.java:587)02-02 15:23:45.426: E/WindowManager(12627): at androID.os.Handler.dispatchMessage(Handler.java:92)02-02 15:23:45.426: E/WindowManager(12627): at androID.os.Looper.loop(Looper.java:123)02-02 15:23:45.426: E/WindowManager(12627): at androID.app.ActivityThread.main(ActivityThread.java:4633)02-02 15:23:45.426: E/WindowManager(12627): at java.lang.reflect.Method.invokeNative(Native Method)02-02 15:23:45.426: E/WindowManager(12627): at java.lang.reflect.Method.invoke(Method.java:521)02-02 15:23:45.426: E/WindowManager(12627): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)02-02 15:23:45.426: E/WindowManager(12627): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:616)02-02 15:23:45.426: E/WindowManager(12627): at dalvik.system.NativeStart.main(Native Method)02-02 15:23:45.456: V/GetFeaturedStoreAsyncTask(12627): arrayList size > 002-02 15:23:45.456: V/GetFeaturedStoreAsyncTask(12627): adapter not null02-02 15:23:45.526: W/dalvikvm(12627): threadID=1: thread exiting with uncaught exception (group=0x400207d8)02-02 15:23:45.536: E/AndroIDRuntime(12627): FATAL EXCEPTION: main02-02 15:23:45.536: E/AndroIDRuntime(12627): java.lang.IllegalArgumentException: VIEw not attached to window manager02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.vIEw.WindowManagerImpl.findVIEwLocked(WindowManagerImpl.java:355)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.vIEw.WindowManagerImpl.removeVIEw(WindowManagerImpl.java:200)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.vIEw.Window$LocalWindowManager.removeVIEw(Window.java:432)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.app.Dialog.dismissDialog(Dialog.java:278)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.app.Dialog.accessif ((this.mDialog != null) && this.mDialog.isShowing()) { this.mDialog.dismiss(); this.mDialog = null; }0(Dialog.java:71)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.app.Dialog.run(Dialog.java:111)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.app.Dialog.dismiss(Dialog.java:268)02-02 15:23:45.536: E/AndroIDRuntime(12627): at com.dzo.seattlesnightlife.asynctask.GetFeaturedStoreListAsyncTask.onPostExecute(GetFeaturedStoreListAsyncTask.java:63)02-02 15:23:45.536: E/AndroIDRuntime(12627): at com.dzo.seattlesnightlife.asynctask.GetFeaturedStoreListAsyncTask.onPostExecute(GetFeaturedStoreListAsyncTask.java:1)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.os.AsyncTask.finish(AsyncTask.java:417)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.os.AsyncTask.access0(AsyncTask.java:127)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.os.Handler.dispatchMessage(Handler.java:99)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.os.Looper.loop(Looper.java:123)02-02 15:23:45.536: E/AndroIDRuntime(12627): at androID.app.ActivityThread.main(ActivityThread.java:4633)02-02 15:23:45.536: E/AndroIDRuntime(12627): at java.lang.reflect.Method.invokeNative(Native Method)02-02 15:23:45.536: E/AndroIDRuntime(12627): at java.lang.reflect.Method.invoke(Method.java:521)02-02 15:23:45.536: E/AndroIDRuntime(12627): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)02-02 15:23:45.536: E/AndroIDRuntime(12627): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:616)02-02 15:23:45.536: E/AndroIDRuntime(12627): at dalvik.system.NativeStart.main(Native Method)02-02 15:23:45.556: W/ActivityManager(180): Force finishing activity com.dzo.seattlesnightlife/.FeaturedActivity解决方法 在退出活动后尝试显示ProgressDialog时会出现此问题. 我刚刚解决了这个问题尝试这种方式:
public interface OnTaskCompleted { voID onTaskCompleted();} 在您重写的onDestroy()或onStop()方法中.
编辑:您可以创建接口,将其传递给AsyncTask(在构造函数中),然后在onPostExecute中调用方法.
例如:
你的界面:
public YourActivity implements OnTaskCompleted { //your Activity} 你的活动:
public YourTask extends AsyncTask<Object,Object,Object> { //change Object to required type private OnTaskCompleted Listener; public YourTask(OnTaskCompleted Listener) { this.Listener=Listener; }//required methods protected voID onPostExecute(Object o) { //your stuff Listener.onTaskCompleted(); }} 而你的AsyncTask:
总结以上是内存溢出为你收集整理的Android:App最终在Post Execute的Async Task中崩溃全部内容,希望文章能够帮你解决Android:App最终在Post Execute的Async Task中崩溃所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)