Blu*_*ell 5 java oop performance android design-patterns
在Fragment中,每次需要对活动的引用或创建全局变量"mActivity"并使用它时,都应该调用getActivity().
基本上你已经有一个Activity对象(getActivity()),感觉就像创建一个全局(mActivity)是代码重复并创建一个不需要的额外引用. 但是使用getActivity()到处都看起来很可怕并且每次做多个方法调用都会感觉不对(性能?).
// Pseudo Android
public class MyFragent extends Fragment {
private Activity mActivity; // Global
public void onActivityCreated(Bundle b){
mActivity = getActivity();
}
public void onClick(View v){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void someMethod(){
randomMethodTakingActivity(mActivity);
// or
randomMethodTakingActivity(getActivity());
}
private void anotherMethod(){
mActivity.someCallback();
// or
getActivity().someCallback();
}
}
Run Code Online (Sandbox Code Playgroud)
这也与getApplication()或getView()相关;
我已阅读Coding for Performance,但看不到任何相关内容.我想要一些关于OO性质和性能的反馈(虽然可能是微不足道的).
在Fragment中,每次需要对活动的引用或创建全局变量"mActivity"并使用它时,都应该调用getActivity().
打电话getActivity()
.对于初学者来说,如果你正在使用setRetainInstance(true)
,你的替代方法就是错误的 - 你会Activity
在配置改变后指出错误.
感觉就像创建全局(mActivity)是代码重复并创建一个不需要的额外引用
绝对.
使用getActivity()到处都看起来很可怕
你当然欢迎你的意见.
每次多方法调用都感觉不对(性能?)
如果您将在紧密循环中调用它一百万次,请为临时缓存创建一个局部变量.否则,性能打击不应该是重要的.
或者,另一种看待它的方式,如果Traceview说你花了太多时间打电话getActivity()
,那就担心它.
归档时间: |
|
查看次数: |
901 次 |
最近记录: |