目前正在开发具有错误API的app。我有一种情况,我必须在活动中使用从网络呼叫接收的数据,这与我进行网络呼叫的活动相差2步。换句话说,所有必要的数据填充3个活动来自这一个网络呼叫。
所以我使用Intent Extra
在活动之间传递必要的数据。维护起来并不容易,而且在活动之间切换需要花费很多时间。
我知道一种可能的解决方案是将数据存储在数据库中。并从不同的活动中访问这些数据。感觉这是一种不好的做法,因为在用户通过第3屏幕后没有使用这些数据。
有没有更好的技术来处理这个问题?
答案 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);
。