【发布时间】:2018-01-24 19:10:41
【问题描述】:
将数据从 Activity 传递到 Fragment 的最佳方式是什么,但 Fragment 由另一个 Activity 托管。
详细说明: 活动 A 托管片段 A(活动 A 中的内容)
我已经做到了,但显然,我的做法导致了一些内存泄漏。
一个例子是在活动关闭时刷新片段中包含的 RecyclerView,但我不想把它放在 onResume 中。
activity中包含的接口(不是宿主)
public class Activity extends AppCompatActivity{
public static OnlistenClose delegate;
public interface OnlistenClose {
void refreshList();
}
}
//实现接口的片段
public class FragmentB extends Fragment implements Activity.OnlistenClose{
Activity.delegate = this;
@Override
public void refreshList(){
//my code
}
}
使用 square/leakcanary 表示有泄漏。
【问题讨论】:
-
你的方法是什么?分享代码,以便人们可以查看和提供帮助。
-
更新此评论
-
你不应该在两个类之间使用静态
interface,这会导致内存泄漏。使用Intent将数据从一个活动发送到另一个活动,然后将接收到的数据作为参数传递给要打开的片段。