一种在多个活动之间共享从网络呼叫接收的数据的技术

时间:2018-03-24 07:35:53

标签: android

目前正在开发具有错误API的app。我有一种情况,我必须在活动中使用从网络呼叫接收的数据,这与我进行网络呼叫的活动相差2步。换句话说,所有必要的数据填充3个活动来自这一个网络呼叫。

所以我使用Intent Extra在活动之间传递必要的数据。维护起来并不容易,而且在活动之间切换需要花费很多时间。

我知道一种可能的解决方案是将数据存储在数据库中。并从不同的活动中访问这些数据。感觉这是一种不好的做法,因为在用户通过第3屏幕后没有使用这些数据。

有没有更好的技术来处理这个问题?

1 个答案:

答案 0 :(得分:0)

您可以将所有网络逻辑放在单独的类中,将数据缓存到某个变量中并在您的活动中使用它(您可以使用单例类或使用dagger注入)。

此外,您还可以阅读有关Clean Architecture的信息,并从中获得一些好的做法。

如果您不想使用上面的任何内容,可以在使用后从数据库中删除数据,而不是永久存储它。或者,如果您的数据不复杂,则可以使用const _ = require('lodash'); var arr = [ { name: 'PERSON1', info_add: {name: 'obs', active: true, faithful: false} }, { name: 'PERSON2', info_add: {name: 'obs', active: true, faithful: true} }, { name: 'PERSON3', info_add: {name: 'obs', active: false, faithful: true} }]; var activeFiltered = _.filter(arr, function(person){ return person.info_add.active; }); var faithfulFiltered = _.filter(arr, function(person){ return person.info_add.faithful; }); console.log(activeFiltered); console.log(faithfulFiltered);