2014-02-26 83 views
0

在我的項目中,我使用new MyFragments()實現了一些碎片並創建了它們的對象。我的一些碎片僅啓動了一次(Singleton)。我應該使用MyFragment.newInstance()代替new MyFragments()這些碎片而僅使用一次嗎?這種方法會提高應用程序的某些性能?或者我應該保持我的舊方法new MyFragments()這裏的表現是我最關心的。新的MyFragment()和MyFragment.newInstance()之間的性能差異?

回答

0

您應該使用MyFragment.newInstance()啓動片段是這樣的:

OfferSingleFragment.newInstance(str); 

而且在OfferSingleFragment使用:

public static OfferSingleFragment newInstance(String s) { 
    OfferSingleFragment f = new OfferSingleFragment(); 
     Bundle args = new Bundle(); 
     args.putString("name",s); 
     f.setArguments(args); 
    return f; 
} 

及更高版本:

String str_title = getArguments().getString("name") ; 

因爲使用我的newInstance方法的唯一好處請參閱以下內容:

您將擁有一個單獨的位置,可以將片段使用的所有參數捆綁在一起,並且每次實例化片段時都不必在下面編寫代碼(如上所示)。

它是一種很好的方式來告訴其他類它期望忠實地工作的參數(儘管如果在片段實例中沒有綁定任何參數,您應該能夠處理案例)。

因此,我認爲使用newInstance靜態方法來實例化一個片段是一種很好的做法。

+0

關於性能? – Anshul

+0

我已經聲明:實例化一個片段的newInstance靜態方法是一個好習慣。這描述了newInstance()比空的consturctor更好。 – userAndroid

+0

欲瞭解更多信息,請查看此鏈接:http://www.androiddesignpatterns.com/2012/05/using-newinstance-to-instantiate.html – userAndroid

相關問題