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

mkh04yzy  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(338)

我有一个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类中有app state,我想在没有上下文的情况下访问它?
您有什么建议吗?

mkshixfv

mkshixfv1#

你所做的是一个相当普遍的模式,不应该真正造成问题。
只要应用程序的任何部分是活动的,应用程序类就可以被视为活动的单例。
文档特别声明这个类用于保存应用程序状态。
但是,根据您的实际设计、您想要保存的状态信息的类型以及您想要访问它的位置,您可能想要创建您自己的单例,独立于应用程序类并使用它。
或者,您可能需要初始化 AppStateUsingClass 在构造函数中传递状态对象。
这是一个设计决策,如果您想对它有更多的意见,请创建一个有效的代码示例并发布它https://codereview.stackexchange.com

相关问题