在 Android 应用程序的开发过程中,我发现了一组实用程序类型的方法,这些方法已放入静态类中。所有这些方法都在多个活动中使用,其中大多数不需要来自调用活动的任何信息。
但是,我现在有一些方法需要 Activity 的 Context 和一个需要 Activity 本身的方法。让我举例说明其中的一些:
- getDeviceNaturalOrientation() - 使用 Activity 的 getWindow().getWindowManager().getDefaultDisplay() 来访问显示器的旋转、宽度和高度,以确定设备的自然方向。
- getDeviceOrientation() - 与上面类似,但获取当前方向
- createFile() - 使用 Context 来访问一些资源(字符串)并创建和显示一些 Toast
现在,我关于这个 Utils 类的大问题是:
- 到目前为止,每个函数都需要一个 Context 参数,我从我所在的任何 Activity 传递它,但是可以在 Utils 类中创建一个静态 Context 或 Activity 变量并将其设置在每个 Activity 的开头(如在 onCreate )? 此变量将用于任何需要 Context 或 Activity 实例的函数。
- 假设不推荐上述方法,是否可以将 Activity 参数传递给方法,或者是否有理由仅将 Activity 作为 Context 传递?我用于上述设备定向功能的方法是特定于 Activity 对象的,而不是 Context,所以我要么作为 Activity 传递,要么作为 Context 传递并转换为 Activity(后者听起来很糟糕)。
另外,我非常愿意接受这个 Util 类可能不是这些需要 Context/Activity 的方法的方法,所以我欢迎那些仍然阻止在使用它们的每个活动类中复制这些方法的替代方法.