我有两个问题。
假设我正在使用三种类型的屏幕创建一个Android应用程序:
首先,一系列3个选项卡显示列表中的信息。信息类型决定了它显示在哪个标签中。
其次,有一个关于所选列表项的详细信息的屏幕。
第三,您可以在其中添加列表项的屏幕,该列表项将填充相应的列表。
这个项目有什么好的结构?现在我所拥有的是一个Global类(扩展应用程序),它跟踪列表并从上面三个屏幕中的每个屏幕的JSON文件,Activity(和附带的Fragment)导入它们,以及单个选项卡的单独片段。
但是,我发现在Globals类中导入JSON文件需要Context,我无法弄清楚如何获取。在我走得更远之前,这是一个很好的结构吗?
如果是这样,我怎样才能在Global类中获取上下文?
我在Android Studio 3中工作。
答案 0 :(得分:1)
Application
是Context
。也就是说,您只需使用当前实例 - this
- 只需要Context
。 (无需拨打getApplicationContext()
。)
但是,后备Context
将无法在Application
的构造函数中正确初始化并附加。 Application
实际上是ContextWrapper
,它是Context
子类,它将所有方法调用委托给系统在启动时创建和设置的Context
字段。这意味着你不能在构造函数中调用任何Context
方法,因为它在那里仍然是null。
与Activity
和Service
类一样,Application
通常不应该有任何明确定义的构造函数。需要完成的任何初始化都可以在其onCreate()
方法中执行。那时Context
字段已设置。