簡體   English   中英

活動和片段onCreate呼叫順序

[英]Activity and Fragment onCreate call order

我在Activity使用了一個Fragment Fragment有一個OnInitListener接口,以便將數據傳遞給宿主Activity ,該宿主在其onCreate()方法內部被調用。 問題是,有時(通常是在屏幕被鎖定和解鎖時),我從在Activity#onCreate上初始化的對象中獲得了NullPointerException ,這是代碼:

// Activity
public void onCreate() {
    super.onCreate();
    // ...some code...

    myObject = new MyObject();
}

@Override
public void onInit(ObjectProperty property) {
    myObject.setProperty(property);   // Here I get NullPointerException
}


// Fragment
public void onCreate() {
     // ... some code ...

     property = new ObjectProperty();
     listener.onInit(property);
}
@Override
public void onAttach(Activity activity) {
    listener = (OnInitListener) activity;  // This part is actually surrounded by try/catch, so don't worry about it
}

總之, Fragment應該初始化一個對象並將其傳遞給偵聽器,以便Activity可以將其設置為另一個對象。

我猜問題是在Activity#onCreate()之前調用了Fragment#onCreate ,這就是為什么我得到NPE的原因,但我可能錯了。 有任何想法嗎?

我對onCreate()並不了解,但是我認為片段onCreate()永遠會在活動的onCreate() 如果我制作片段,則始終使用onActivityCreated() 創建活動后將調用此方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM