我有点困惑如何在安全的 android 项目中在活动之间共享全局变量。
哪种做法是最佳实践?扩展 Application 类还是创建自定义单例类?
希望能得到帮助,提前致谢。
我有点困惑如何在安全的 android 项目中在活动之间共享全局变量。
哪种做法是最佳实践?扩展 Application 类还是创建自定义单例类?
希望能得到帮助,提前致谢。
mPersistData.saveEmailId("me@example.com");
在类的构造函数中,通过从SharedPreferences中读取它们来初始化成员变量。这样,对于该变量的读取是“缓存”的,即它们不需要从SharedPreferences中读取,如果应用程序被杀死并重新启动,则成员变量具有正确的值。如果只在应用程序类中保存值,则在应用程序重新启动时,成员变量将无效(不是您预期的或甚至为null)。
下面是一个例子:
public class PersistData {
private String email;
public PersistData(MyApp app) {
mApp = app;
email = readEmailId();
}
public void saveEmailId(String emailToSave) {
writeEmailId(emailToSave);
email = emailToSave;
}
private void writeEmailId(String emailId) {
generalSettingsFileEditor.putString("USER_ID", emailId);
generalSettingsFileEditor.commit();
}
public String readEmailId() {
String emaiId = generalSettingsFile.getString("USER_ID","");
return(emaiId);
}
public String getEmail() {
return email;
}
}
@Provides @Singleton
public PersistData providePersistData () {
System.out.println(String.format("mApp = %s", mApp));
return new PersistData(mApp);
}
public class HomePresenter {
@Inject
PersistData mPersistData;
...
mPersistData.saveEmailId("me@example.com");
myEmail = mPersistData.getEmailId();
...
}
Application
类 https://www.intertech.com/Blog/androids-application-class/ - NoWar