是否有部分代码始终在应用程序启动时执行,无论活动如何,我们都可以访问上下文?
我的应用程序需要api密钥。我将它们存储在资产中的.properties文件中,并在每次需要加载时从context.getRessources().getAssets()
访问此文件。
key = getKey(getContext())
我希望一旦成功访问一次就有一个静态变量存储它们。但由于我不知道他们何时会第一次访问,我需要做类似的事情
if(isKeySet()){
key = getKey();
} else {
setKey(getContext());
}
哪个不理想,因为我仍然需要传递一个上下文。如果我可以确保总是执行代码的一部分(访问上下文),我可以在这里加载它们以及每次后续调用
key = getKey();
答案 0 :(得分:2)
您可以使用Android Application课程。它扩展了Context,是存储全局应用程序状态的基类。
public class MyApplication extends Application
{
private static MyApplication mSingleton;
@Override
public void onCreate()
{
super.onCreate();
mSingleton = this;
}
public static MyApplication getInstance() {
return mSingleton;
}
}
在androidManifest.xml
中,您需要在android:name="com.X.Y.Z.MyApplication"
<application>
现在,当您的应用启动时,它将启动MyApplication.onCreate
方法。
致电super.onCreate()
后,您可以访问getApplicationContext()
并初始化您的单身人士。