Android应用程序级别范围变量

jon*_*ohn 9 architecture android

我知道没有可用于定义共享逻辑/数据的应用程序级别范围,并且每个活动本质上是由清单绑定在一起的独立应用程序...

但我有一组用户访问权限,我通过Web服务调用获得,并且不希望在每个活动中进行此调用onCreate().

SharedPreferences在应用程序中使用,但由于权限不是可由用户编辑的,因此Android设备上的平面文件曝光感觉就像处理此问题的不安全方式.

如果应用程序重新启动,我需要重新请求此信息,所以我认为最便宜的是将它存储在变量中.

我知道IntentExtras,但我们谈论的是设置"对象",而不是原始类型.

正确处理这种情况的方法?

rhi*_*nds 28

您实际上可以创建一个"应用程序"类,可用于实质上创建应用程序范围的设置.

只需创建一个新类并扩展Application,然后设置任何类成员和适当的getter/setter方法,您就可以在整个应用程序中访问它们.

然后,您需要更新清单,如下所示:

<application android:icon="@drawable/logo"
             android:label="@string/app_name"
             android:name=".application.CustomApplication">
Run Code Online (Sandbox Code Playgroud)

然后在任何活动中,您可以按如下方式访问它:

CustomApplication app = ((CustomApplication)getApplication());
Run Code Online (Sandbox Code Playgroud)