繁体   English   中英

处理资源的最佳方法

[英]best way to handle resources

我有点想将资源传递给Activity上使用的子类。 我以两种方式解决了该问题,但不确定是否其中之一或两者都会导致可能的内存泄漏。 所以这是我到目前为止所拥有的:

-myactivity(活动类)

-global(程序包的全局类,我用来保存全局可访问变量)

-subclass(我要使用可绘制资源的子类)

一种)

public class global{
    public static Resources appRes;
    ....
}

public class myactivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        global.resApp = this.getResources();
        ...
    }

    private void somewhere(){
        subclass tmp = new subclass();
        tmp.subclasmethod();
    }
}

public class subclass{
    public subclass(){...}

    public void subclassmethod(){
        Bitmap bmp = BitmapFactory.decodeResource(Global.appRes, R.drawable.myres);
        ...
    }
}

b)

public class myactivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ...
    }

    private void somewhere(){
        subclass tmp = new subclass(this.getContext());
        tmp.subclasmethod();
    }
}

public class subclass{
    Context context;

    public subclass(Context context){
        this.context = context
        ...
    }

    public void subclassmethod(){
        Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.myres);
        ...
    }
}

预先感谢您的反馈。

如果希望全局类存储应用程序范围的值,则至少不应使用选项a 相反,请看一下Application类,它旨在帮助您实现这一点:

需要维护全局应用程序状态的人员的基类。

否则,您在选项b中建议的替代方法是一种可行的方法。 至少,如果您需要做的就是传递对应用程序上下文的引用,以便您可以访问资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM