我可以拥有使用单例实例作为数据源的适配器吗?我不会有任何对 View /上下文的静态引用,只有存储在单例中的纯数据。这种解决方案是否会存在任何泄漏或任何缺点?
public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
/* SINGLETON */
private DataManager manager;
public MyAdapter(DataManager manager) {
this.manager = manager;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// create vh
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
// bind vh
}
@Override
public int getItemCount() {
return manager.itemsCount();
}
}
DataManager 是一个单例对象,它在我的服务中保存状态/数据。
提前致谢。
最佳答案
引用单例的适配器不会泄漏任何内容。如果数据管理器未正确实现,则可能会泄漏内存。
使用单例来存储静态数据就可以了。当您使用完数据后,您可以将其丢弃。
关于java - Singleton作为RecyclerView.Adapter的数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42900246/