0

我正在使用扩展Application类的模式来保存我的全局变量(https://stackoverflow.com/a/708317/1709805)。从我的 Android 组件 ( Activity, Fragment, Service, ecc ) 我使用 ( (MyApp) getApplicaction()) 访问它们,但在我的项目中我有很多辅助类我不能(显然)使用该方法。为了解决这个问题,我已经标记了一个返回应用程序的静态方法。这是代码:

public class MyApp extends Application{

  private static MyApp app;

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

  public static MyApp getApp() {
      return app;
  }
}

这是一个好的模式吗?有什么建议可以更好地实现我的目的吗?谢谢

4

1 回答 1

3

这是一种不好的做法。

只需MyApp app = (MyApp)getApplicationContext();在整个应用程序中使用。

确保您已在AndroidManifest.xml文件的标记中声明了MyApp<application>

您要做的是,当您想访问MyApp app其他非 Android 组件类中的对象时,然后从 Android 组件类(Activity、Fragment、Service 等)传递MyApp appargument of Constructor or Method非 Android 组件类(Helper、Handler 或其他 Java 类) )。

于 2013-02-21T09:38:27.283 回答