是否可以通过配置更改为活动保留Dagger 2子组件? 似乎只有两种可能的解决方案是:
Bundle
恢复它。两者似乎都是凌乱的解决方案 - 有没有人用更清洁的解决方案来解决这个问题?
答案 0 :(得分:2)
您的问题听起来像是您不应该尝试做的事情。
创建并依赖于活动的组件可能会引用该活动。保留该组件听起来像是内存泄漏的主要原因。
当您的配置发生变化时,活动将被销毁,与之相关的所有内容也应该被销毁。
所以你提到的 - 保存包function shuffleJSON(input) {
var boys = [],
girls = [];
for (var i = 0; i < input.length; i++) {
if (input[i].npcSex === 'boy') {
boys.push(input[i].npcName);
}
if (input[i].npcSex === 'girl') {
girls.push(input[i].npcName);
}
}
boys = shuffle(boys);
girls = shuffle(girls);
for (var i = 0; i < input.length; i++) {
if (input[i].npcSex === 'boy') {
input[i].npcName = boys.shift();
}
if (input[i].npcSex === 'girl') {
input[i].npcName = girls.shift();
}
}
return input;
}
中的状态并再次重新创建它 - 听起来像是对我来说最干净的解决方案。