2017-02-09 12 views
6

Ben onCreate en setContentView (R.layout.myLayout.xml) çağrıldığında onAttachedToWindow denir inanıyoruz. bu yüzden etkinlik yok edilir aktivite yaşam döngüsünde onDetachedFromWindow denir o zaman varsayabiliriz? Sorum şu, bu iki geri arama kancalarını etkinlik yaşam döngüsüne nasıl bağlarım?Android görünümü - onAttachedToWindow ve onDetachedFromWindow - onlar aktivite yaşam döngüsü içinde denir?

i onAttachedToWindow onCreate bağlıdır ve onDetachedFromWindow OnDestroy bağlı olduğunu söyleyebiliriz? onAttachedToWindow konuşan

cevap

7

Teknik onResume sonra denilen (ve sadece perlifecycle kez olur) olduğu. ActivityThread.handleResumeActivity çağrı, geçerli DecorView ekleyecek, ve daha sonra tüm görünümleri çapraz ve her görünümde onAttachedToWindow çağrı, daha sonra WindowManagerGlobal.addView() arayın.

onDetachedFromWindow Ben setContentView çağrıldığında onAttachedToWindow adı verilecek mümkündür bulmak onDestroy

+0

soru. Eğer onResume'de çağrılırsa, o zaman etkinlik her zaman yeniden faaliyete tekrar tekrar bağlanır. – j2emanue

+0

@WenChao Bu doğru değil. onAttachedToWindow, söz konusu etkinliğin ömrü boyunca yalnızca ONCE olarak adlandırılır. –

+0

@CatalinMorosan, daha açık bir şekilde belirtmeliyim, doğru olduğunu, ömür boyu ONCE denir. Söylemeye çalıştığım şey, onAttachedToWindow öğesindeki onAttachedToWindow öğesinden sonra gerçekleşir, daha sonra yaşam döngüsünde onAttachedToWindow işlevine daha fazla çağrı yoktur. Teşekkürler. – WenChao

0

ile bağlıdır.

Android N üzerinde bölünmüş ekranı kullanmak

ve AndroidManifest.xml faaliyet configChanges değeri ayarlanması:

"keyboardHidden|orientation|screenSize" 

onAttachedToWindowsetContentView içinde adı verilecek, decorview değişken "mAttachInfo" Çünkü Eğer decorView için rootView eklemek için setContentView çağırdığınızda pencerenin, boş değil, dispatchAttachedToWindowaddViewInner() yılında denir. Son olarak onResume(), onAttachedToWindow() numaralı etkinlikten sonra tekrar çağrılmayacaktır.

İlgili konular