Android随识

1.https://github.com/KeepSafe/ReLinker
这个可以出来安装过程中加载库异常问题:Caused by: java.lang.UnsatisfiedLinkError;
2.https://github.com/Tencent/MMKV
这个保存临时数据可以使用到

Dagger2相同实例多个对象

Module:注入对象的集合
1、注入相同实例的多个对象的方法
Module中用Named()来区分,然后在需要用的地方用对应Named()来标识;
Module 中:
@Provides
@Named(“Demodagger2Action”)
String provideActionValue() {
return action;
}
@Provides
@Named(“demoBean”)
DemoBean provideDemoBean() {
return demoBean;
}
类中:
@Inject
public DemoDagger2(@Named(“Demodagger2Action”) String action,
@Named(“Demodagger2NewAction”) String newAction,
@Named(“demoBean”)DemoBean demoBean) {
this.action = action;
this.newAction = newAction;
this.demoBean = demoBean;
}
或:
@Inject
@Named(“demoBean”)
DemoBean demoBean;

Android webview高度过高问题

现象:recycleview中item项包含webview,当webview中内容高度过高(图片过大)导致recycleview一直刷新;
原因:图片过高,导致加载之后item自动计算高度出现问题,从而重复刷新列表;
解决办法:限制图片高度
if (!TextUtils.isEmpty(formula_text)) {
Matcher matcher = Pattern.compile(“]*>([\\s\\S]*)<\\/body>“).matcher(formula_text);
if (matcher.find()) {//通过正则表达式找出body的内容,包括body标签。下面是head内容,适配手机宽度、图片大小、文字换行
String head = “” +

+


+
““;
formula_text = “” + head + matcher.group() + ““;
}else{
String head = “” +

+


+
““;
formula_text = “” + head + ““+formula_text+”” + ““;
}
}
// webview.loadData(content, “text/html; charset=utf-8”, “utf-8”);
this.loadDataWithBaseURL(“null”,formula_text+””,”text/html”,”UTF-8″,”about:blank”);

android 最上层权限

String ACTION_MANAGE_OVERLAY_PERMISSION = “android.settings.action.MANAGE_OVERLAY_PERMISSION”;

Intent intent = new Intent(ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse(“package:” + getPackageName()));

startActivityForResult(intent,5004);

RecycleView 局部刷新

1、实现该方法,通过 payload返回值控制刷新
// payloads是notifyitemchanged传过来的object的集合
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int position, @NonNull List payloads) {
}
2、调用notifyItemChanged方法;
3、局部刷新不生效可能原因:notifyItemChanged是否在UI线程;notifyItemChanged的position是否与该数据在数据集合中的位置一致(最好遍历一下数据集合找到对应的位置)。