大佬教程收集整理的这篇文章主要介绍了Android:App最终在Post Execute的Async Task中崩溃,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
异步任务
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 @Override protected void onPreExecute() { pd = new ProgressDialog(ctX); pd.setmessage(ctx.getresources().getString(R.String.please_wait)); pd.show(); }//onPreExecute @Override protected String doInBACkg@R_675_7060@Void... params) { Log.v(tag,"doInBACkground called"); JSONParser jsonParser = new JSONParser(); String serverResponse = jsonParser.getJsonString(dataUrl); return serverResponse; }//doInBACkground @Override protected 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 }//onPostExecute private 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 here 02-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 here 02-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$@R_447_6674@rTask$1.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 > 0 02-02 15:23:45.456: V/GetFeaturedStoreAsyncTask(12627): adapter not null 02-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: main 02-02 15:23:45.536: E/AndroidRuntime(12627): java.lang.IllegalArgumentexception: View not attached to window manager 02-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.access$000(Dialog.java:71) 02-02 15:23:45.536: E/AndroidRuntime(12627): at android.app.Dialog$1.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.access$300(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
我刚刚解决了这个问题尝试这种方式:
if ((this.mDialog != null) && this.mDialog.isShowing()) { this.mDialog.dismiss(); this.mDialog = null; }
在您重写的onDestroy()或onStop()方法中.
编辑:您可以创建接口,将其传递给AsyncTask(在构造函数中),然后在onPostExecute中调用方法.
例如:
你的界面:
public interface OnTaskCompleted { void onTaskCompleted(); }
你的活动:
public YourActivity implements OnTaskCompleted { //your Activity }
而你的AsyncTask:
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(); } }
以上是大佬教程为你收集整理的Android:App最终在Post Execute的Async Task中崩溃全部内容,希望文章能够帮你解决Android:App最终在Post Execute的Async Task中崩溃所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。