这2个选项中哪一个更适合性能?

 love小蕾XM_578 发布于 2023-02-09 18:00

我在Android应用中使用片段.在这些片段中,我需要一个Context对象来重复使用它(大约10次)和一些方法调用.

如您所知,我有两个选择:

选项I:

public class MyFragment extends Fragment{
    public void onCreate(Bundle savedInstanceState){
        super(savedInstanceState);

        //call a lot of methods and use getActivity() a lot of times
    }
}

方案二:

public class MyFragment extends Fragment{

    private Activity mActivity;

    public void onCreate(Bundle savedInstanceState){
        super(savedInstanceState);

        mActivity = getActivity();
        //call a lot of methods and use mActivity
    }
}

我知道声明mActivity字段需要一些内存(多少?),但我认为调用getActivity需要一些CPU处理.

这两个选项中哪一个更好,为什么?


编辑:

那么,看看Android源代码,我可以在Fragment类中找到getActivity()方法的来源:

final public FragmentActivity getActivity() {
    return mActivity;
}

因此,正如您所看到的,在选项II中,动态性被保留两次,这是浪费内存,所以从现在开始我将使用选项I.

谢谢你的回答,他们让我明白这个:)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有