2014-02-26 56 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

相关问题