SORU
8 ŞUBAT 2010, PAZARTESİ


android Görünümü pencere yöneticisi ve ona bağlı

Aşağıdaki bazı özel durumlar yaşıyorum:

java.lang.IllegalArgumentException: View not attached to window manager
at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:355)
at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:191)
at android.view.Window$LocalWindowManager.updateViewLayout(Window.java:428)
at android.app.Dialog.onWindowAttributesChanged(Dialog.java:596)
at android.view.Window.setDefaultWindowFormat(Window.java:1013)
at com.android.internal.policy.impl.PhoneWindow.access$700(PhoneWindow.java:86)
at com.android.internal.policy.impl.PhoneWindow$DecorView.drawableChanged(PhoneWindow.java:1951)
at com.android.internal.policy.impl.PhoneWindow$DecorView.fitSystemWindows(PhoneWindow.java:1889)
at android.view.ViewRoot.performTraversals(ViewRoot.java:727)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1633)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4338)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)

Araştırdım ve bir pop-up ile ekran dönüm olduğunu görmek zorundayım, ama benim için referans kodu diye bir şey yok.

Sorular:

  1. orada öğrenmek için bir yoldur bu sorun tam olarak ne zaman oluyor?
  2. ekran dönme dışında, bu hata tetikleyen başka bir olay veya eylem?
  3. bunun olmasına nasıl engellerim?

CEVAP
5 HAZİRAN 2011, Pazar


Ekran yönünü değiştirmek, faaliyet, ilerleme tamamlandı iletişim ile AsyncTask önce bitmiş bu sorun vardı. İletişim onPause() null olarak ayarlamak ve sonra kayıtsız önce AsyncTask bu denetleyerek bu sorunu çözmek için görünüyordu.

@Override
public void onPause() {
    super.onPause();

    if ((mDialog != null) && mDialog.isShowing())
        mDialog.dismiss();
    mDialog = null;
}

... benim AsyncTask:

protected void onPreExecute() {
    mDialog = ProgressDialog.show(mContext, "", "Saving changes...",
            true);
}

protected void onPostExecute(Object result) {
   if ((mDialog != null) && mDialog.isShowing()) { 
        mDialog.dismiss();
   }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Influencer Plus

    Influencer P

    2 Ocak 2013
  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • VvCompHelpvV

    VvCompHelpvV

    4 EYLÜL 2007