在我们的项目中,我们被禁止存储来自服务器的数据(保密信息)。但是一旦下载和解析的模型被用在多个片段中。服务器每天更新一次数据,并在午夜强制注销。我想将分区模型存储在内存中,并在退出app时将其删除。
在当前的实现中,我有两个单实例类 - RestClient 和 DataStorage ,它们在构造函数中注册到Otto总线。我在Application类中实例化它们:
@Override
public void onCreate() {
super.onCreate();
new RestClient(this);
new DataStorage();
}
每个型号的DataStorage都有方法:
@Subscribe
public void onModelComplete(Model model) {
this.model = model;
}
@Produce
public Model produceModel() {
return model;
}
片段发送事件将总线抛出到RestClient并从RestClient或"生成" DataStorage的结果(如果在后台应用程序时收到数据)。
问题是当用户退出应用程序时,数据不会被删除,因为应用程序不会死亡。如何实现在内存中存储并在退出时清除数据而不杀死进程?