Java Android如何将应用程序注入到不存在上下文的类中?

Java Android如何将应用程序注入到不存在上下文的类中?,java,android,dagger-2,android-lifecycle,android-context,Java,Android,Dagger 2,Android Lifecycle,Android Context,我有一个android应用程序 @HiltAndroidApp class MyApp extends Application { static MyApp app; static MyApp getApp() { return app; } @Override public void onCreate() { super.onCreate(); app = this; } } 我试着在课堂上

我有一个android应用程序

@HiltAndroidApp
class MyApp extends Application {

    static MyApp app;

    static MyApp getApp() {
        return app;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        app = this;
    }
}
我试着在课堂上使用它

class AppStateUsingClass {
  public void mymethod() {
   MyApp app = MyApp.getApp();
   //use app
  }
}
现在我可以在没有上下文的地方访问应用程序,但我不确定它是否正确。 我的理解是,应用程序的生命周期是通过应用程序的启动和停止来完成的,因此它作为一个单例存在,所以它应该是好的,但不确定

没有更简单的API来访问应用程序吗?我在MyApp类中有应用程序状态,我想在没有上下文的情况下访问它


非常感谢您的任何建议。

您所做的是一种相当常见的模式,不应该真正导致问题

只要应用程序的任何部分都是活动的,应用程序类就可以被视为活动的单例

特别声明该类用于保存应用程序状态

但是,根据您的实际设计、希望保存的状态信息的类型以及希望访问它的位置,您可能希望创建自己的单例,独立于应用程序类并使用它

或者,您可能希望使用构造函数中传递的状态对象初始化
AppStateUsingClass


这是一个设计决策,如果您想对其发表更多意见,请创建一个工作代码示例,并将其发布在

上。您所做的是一个相当常见的模式,不应该真正导致问题

只要应用程序的任何部分都是活动的,应用程序类就可以被视为活动的单例

特别声明该类用于保存应用程序状态

但是,根据您的实际设计、希望保存的状态信息的类型以及希望访问它的位置,您可能希望创建自己的单例,独立于应用程序类并使用它

或者,您可能希望使用构造函数中传递的状态对象初始化
AppStateUsingClass


这是一个设计决策,如果您想对其发表更多意见,请创建一个工作代码示例并将其发布到

您需要做什么?使用的问题是什么?另外,在Android中,永远不要依赖静态,应用程序可能会被破坏(该上下文没有onDestroy)。永远不要把上下文也放到静态中。我试图在上下文不可用的类中获取应用程序。在Illustrate中添加了一个有问题的类,您需要做什么?使用的问题是什么?另外,在Android中,永远不要依赖静态,应用程序可能会被破坏(该上下文没有onDestroy)。永远不要把上下文也放到静态中。我试图在上下文不可用的类中获取应用程序。添加了一个有问题的类来说明