我明白,没有应用程序级别范围可用于定义共享逻辑/数据,并且每个活动本质上是由清单绑定在一起的独立应用程序…
但是我有一组用户访问权限,我通过Web服务调用获得,并且不想在每个活动onCreate()上进行此调用.
我在应用程序中使用SharedPreferences,但是由于用户无法编辑权限,因此Android设备上的平面文件曝光感觉像一种不安全的方式来处理这个问题.
如果应用程序重新启动,我确实需要重新请求这个信息,所以我相信最便宜的是将它存储在一个变量中.
我知道IntentExtras,但我们正在谈论一个设置“对象”,而不是一个原始类型.
正确的方式来处理这种情况?
解决方法
您实际上可以创建一个“应用程序”类,可以用于基本上创建应用程序范围的设置.
只需创建一个新类并扩展Application,然后设置任何类成员和适当的getter / setter方法,您可以在整个应用程序中访问它们.
然后,您需要更新您的清单,如下所示:
<application android:icon="@drawable/logo" android:label="@string/app_name" android:name=".application.CustomApplication">
然后在任何活动中,您可以访问它,如下所示:
CustomApplication app = ((CustomApplication)getApplication());