java - Singleton作为RecyclerView.Adapter的数据源

标签 java android

我可以拥有使用单例实例作为数据源的适配器吗?我不会有任何对 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/

相关文章:

java - 浏览器PDF文件预览器(Google风格)

java - 为什么我会收到 GAE 应用程序的 ClassNotFoundException

java - 在 Java 中调用方法 - Hello World 示例

java - Intellij-idea 每次模板更改时都需要制作和构建 xx.war 吗?

android - 自定义偏好

Java 8 Date API - 获取月份中日期的序号位置

android - OutOfMemory 异常 Android VectorBitmap

java - 空对象引用上的 View.findViewById(int)'

Android startActivity - 发生了什么

android - 在 Android 中实现 Webview 的查找以前的功能