關於Fragment中的onAttach()方法有時候無法正常加載的問題


  在Android Studio里使用Fragment開發兼容平板的應用時遇到了一些小問題。由於開發初衷是兼容手機和平板,使用A和B兩個模擬器,一個用於測試手機,一個用於測試平板。在模擬器A運行應用時一點兒問題也沒有,模擬器B運行應用卻顯示異常。

模擬器A運行效果如下:

  模擬器B應用效果運行如下,左邊標題頁和上圖主頁上為同一個Fragment,當應用運行時數據卻沒有加載出來。

  懷疑是應用啟動時,有的方法沒有正常執行,導致一部分應用數據沒有加載。由於初始化操作是在onAttach()中完成的。查看代碼,經編輯器提示,發現Fragment中的onAttach()有兩個可供覆寫的方法一個為onAttach(Activity activity),一個是onAttach(Context context),前者已經被廢棄。我使用的是onAttach(Context context)。在代碼中加入輸出信息。

public void onAttach(Context context) {
    super.onAttach(context);
    initNews();
    adapter = new NewsAdapter(context,R.layout.news_item,newsList);
    Log.d(TAG, "onAttach");
}

  對比發現,當模擬器A運行應用時,onAttach(Context context),是正常執行的,一旦部署到模擬器B中運行,就不會執行此方法。用onAttach(Activity activity)替換onAttach(Context context)后,部署到模擬器A中,onAttach()正常執行,問題得到解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM