null引用Singleton对象

时间:2015-04-11 21:51:26

标签: android singleton

我正在尝试创建一个全局变量,可以从任何位置访问它,包括Activity,Fragment和其他自定义类。

public class Global extends Application {
private static Global sInstance;
private String mSharedInfoFileName; //can be any custom object

public static Global getInstance() { return sInstance; }

@Override
public void onCreate() {
    super.onCreate();
    sInstance = this;
    initialize();
}

private void initialize() { mSharedInfoFileName = "globalInfo"; }

public String getFileName() { return mSharedInfoFileName; }

private Global() { }

}

并尝试像这样使用它

public class MyFragment extends android.support.v4.app.Fragment {
            String s = Global.getInstance().getFileName();

            }

即使在类范围内声明它仍然给出相同的错误

    private static Global mGlobal = Global.getInstance();

让我尝试发票...... .Global.getFileName()'在null对象引用上。我错过了什么?

谢谢

1 个答案:

答案 0 :(得分:2)

将此方法更改为静态:

public static String getFileName() {
   return mSharedInfoFileName; 
}

并在下面调用它:

Global.getFileName();

mSharedInfoFileName变量也必须是静态的:

private static String mSharedInfoFileName;