Android Studio 代码中的各种警告 消除 汇总

Avoid passing null as the view root (needed to resolve layout parameters on the inflated layout's root element)

之前

@NonNull
@Override
public ItemHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_playing_queue, null);
    return new ItemHolder(v);
}

之后

@NonNull
@Override
public ItemHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
    View v = View.inflate(viewGroup.getContext(), R.layout.item_playing_queue, null);
    return new ItemHolder(v);
}

This AsyncTask class should be static or leaks might occur (anonymous android.os.AsyncTask

这个是建议把AsyncTask的子类声明为static的,但是声明为static后,里面用到的那些变量全部都需要通过构造函数传入。传入后,会引发下面的那个警告。
意思是字段可能引起内存泄露,因为里面的一些控件间接在持有activity的引用。
查找各种资料,发现AsyncTask已经被官方启用了。具体说明参考如下:
【搬运】AsyncTask is Deprecated, Now What?
别再使用AsyncTask了,它已经被正式弃用了
由于旧项目太多了,以后抽时间升级sdk版本并重构。这个版本先不升级了,暂时忽略这两个错误了吧。

This field leaks a context object

参考上面的文档链接。

posted @ 2022-09-21 13:59  流失的痕迹  阅读(613)  评论(0编辑  收藏  举报