Android:使用静态方法获取应用程序
我正在使用扩展Android:使用静态方法获取应用程序,android,Android,我正在使用扩展应用程序类的模式来保存全局变量()。从我的Android组件(活动,片段,服务,ecc)中,我使用((MyApp)GetApplication())访问它们,但在我的项目中,我有很多助手类,我(显然)无法使用该方法。为了解决这个问题,我标记了一个返回应用程序的静态方法。代码如下: public class MyApp extends Application{ private static MyApp app; @Override public void onCrea
应用程序类的模式来保存全局变量()。从我的Android组件(活动
,片段
,服务
,ecc)中,我使用((MyApp)GetApplication()
)访问它们,但在我的项目中,我有很多助手类,我(显然)无法使用该方法。为了解决这个问题,我标记了一个返回应用程序的静态方法。代码如下:
public class MyApp extends Application{
private static MyApp app;
@Override
public void onCreate(){
super.onCreate();
app = this;
}
public static MyApp getApp() {
return app;
}
}
这是一个好的模式吗?有什么建议可以更好地达到我的目的吗?谢谢你这是个坏习惯
只需使用,MyApp-app=(MyApp)getApplicationContext()代码>在整个应用程序中
确保您已在AndroidManifest.xml文件的
标记中声明了MyApp
您需要做的是,当您想要访问其他非Android组件类中的MyApp-app
对象时,将MyApp-app
作为构造函数或方法的参数从Android组件类(活动、片段、服务等)传递给非Android组件类(助手、处理程序或其他Java类).这是一种不好的做法
只需使用,MyApp-app=(MyApp)getApplicationContext()代码>在整个应用程序中
确保您已在AndroidManifest.xml文件的
标记中声明了MyApp
您需要做的是,当您想要访问其他非Android组件类中的MyApp-app
对象时,将MyApp-app
作为构造函数或方法的参数从Android组件类(活动、片段、服务等)传递给非Android组件类(助手、处理程序或其他Java类).好的。。我已经评估了这种可能性。这是一个肯定有效的解决方案。。但是我非常懒惰,所以我不希望将MyApp的引用传递给每个类或方法;)。为什么我的方法如此错误?好的。。我已经评估了这种可能性。这是一个肯定有效的解决方案。。但是我非常懒惰,所以我不希望将MyApp的引用传递给每个类或方法;)。为什么我的方法如此错误?