在我们的项目中,我们禁止存储来自服务器的数据(机密信息)。但是一旦下载并解析了模型,就会在多个片段中使用。服务器上的数据每天更新一次,并在午夜发生强制注销。我想将parced模型存储在内存中,并在退出应用程序时将其删除。
在当前实现中,我有两个单实例类 - 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 “生成”结果(如果在后台应用程序时接收到数据)。
问题是当用户退出应用程序时,数据并没有被删除,因为应用程序并没有死掉。如何在不杀死进程的情况下在退出时清除数据来实现存储在内存中?