আমি অ্যাপ ক্র্যাশগুলির প্রতিবেদন করতে ACRA ব্যবহার করছি। আমি একটি View not attached to window managerত্রুটি বার্তা পাচ্ছিলাম এবং ভেবেছিলাম আমি pDialog.dismiss();একটি if বিবৃতিতে মোড়ক দিয়ে এটি ঠিক করেছি :
if (pDialog!=null)
{
if (pDialog.isShowing())
{
pDialog.dismiss();
}
}
এটি যে View not attached to window managerক্র্যাশগুলি পেয়েছি তার পরিমাণ হ্রাস পেয়েছে তবে আমি এখনও কিছু পেয়ে যাচ্ছি এবং কীভাবে এটি সমাধান করবেন তা সম্পর্কে আমি নিশ্চিত নই।
ভুল বার্তা:
java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:425)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:327)
at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:83)
at android.app.Dialog.dismissDialog(Dialog.java:330)
at android.app.Dialog.dismiss(Dialog.java:312)
at com.package.class$LoadAllProducts.onPostExecute(class.java:624)
at com.package.class$LoadAllProducts.onPostExecute(class.java:1)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
টুকিটাকি সংকেতলিপি:
class LoadAllProducts extends AsyncTask<String, String, String>
{
/**
* Before starting background thread Show Progress Dialog
* */
@Override
protected void onPreExecute()
{
super.onPreExecute();
pDialog = new ProgressDialog(CLASS.this);
pDialog.setMessage("Loading. Please wait...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
/**
* getting All products from url
* */
protected String doInBackground(String... args)
{
// Building Parameters
doMoreStuff("internet");
return null;
}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url)
{
// dismiss the dialog after getting all products
if (pDialog!=null)
{
if (pDialog.isShowing())
{
pDialog.dismiss(); //This is line 624!
}
}
something(note);
}
}
সুস্পষ্ট:
<activity
android:name="pagename.CLASS"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout"
android:label="@string/name" >
</activity>
এই ক্র্যাশটি ঘটে যাওয়া বন্ধ করতে আমি কী মিস করছি?
AsyncTaskভিতরে ঘোষিত হয় Activityনাকি Fragment?