关于引用资源文件挂掉的问题解决

来源:互联网 发布:马蓉面相 知乎 编辑:程序博客网 时间:2024/05/22 03:12

如果将String定义为全局变量并且初始化,如下代码:

private String mTag = getString(R.string.right_fragment);@Overridepublic void onAttach(Context context) {    super.onAttach(context);    Log.d(mTag, "onAttach");}
则程序会挂掉


如果将字符串定义为全局变量,但在onAttach()方法中初始化,则不会挂掉,

如下代码:

private String mTag;@Overridepublic void onAttach(Context context) {    super.onAttach(context);    mTag = getString(R.string.right_fragment);    Log.d(mTag, "onAttach");}

因为在调用资源文件的时候必须有一个Context被创建好,如果放在全局变量中初始化,编译器首先初始化全局变量,因为此时还没有调用onAttach方法,所以会挂掉。

如果将字符串定义为全局变量并在调用onAttach方法时再初始化,则Context已经被创建,所以字符串初始化时可以顺利地引用资源文件,程序正常运行。

原创粉丝点击