[英]Singleton as a data source for RecyclerView.Adapter
我可以使用单例实例作为数据源的适配器吗? 我将不会对Views / Context进行任何静态引用,而仅将简单数据存储在singleton中。 这样的解决方案是否会存在泄漏或缺点?
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是一个单例对象,可在我的服务中保存状态/数据。
提前致谢。
因为它是单例,所以这意味着该类持有对该类实例的引用,因此数据将始终保存在内存中。 如果应用程序拥有大量资源,可能会导致其响应速度降低。
此外,如果您的应用程序占用空间很大,那么在内存不足的情况下,Android操作系统很可能会破坏您的应用程序。
如果可能(通常是这样),请避免单例。
您应该使用两种情况。
引用单例的适配器不会泄漏任何内容。 如果未正确实施,您的数据管理器可能会泄漏内存。
使用单例存储静态数据就可以了。 使用完数据后,您就可以处置它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.